Skip to main content

Full text of "PC Tech Journal Volume 02 Number 03"

See other formats


14024 " 14357 ' 



September 1984 


HIGH-TECH MIMICRY 

Ten terminal-emulation 
packages for the IBM PC 


— OMNINET FROM 
CORVUS: GRAND OLD 
MAN OF NETWORKS 


TWO PRINTERS FROM IBM 
COLOR GRAPHICS 
AND PC COMPACT !r 


ADVANCED MACRO TECHNIQUES 
ON THE IBM PC 


AN APL TUTORIAL 

FROM ANALOG TO DIGITAL 
ON THE PC WITH DASCON-1 
















































When it comes to computer 

communications there’s only 
one name to remember, 

Quadrann. 



Now Quadram Makes Communications 

as easy as 1,2,3. 


When it comes to enhancement products 
for IBM® PC’s and other personal computers, 
no one can beat Quadram. In fact, if you use 
spreadsheets or large databases, you’re 
probably using a Quadram product already 

Now Quadram applies their expertise to 
communication devices. Not just modems, 
but a full range of other products, too. So 
that you can do anything from networking 
many PC’s together to giving your PC full 
3278 terminal emulation in an IBM 
mainframe environment. 

Only Quadram gives you such a selection- 
complete with options and upgrade capability. 
So now it’s easier for you to design the 
perfect system for your needs. All you need 
to do is remember one name—Quadram. 


1. Quadmodem™ 

From your home or office, 
reach out and touch 
something. 

Just because your computer is all alone, 
that doesn’t mean it has to be lonely. Not 
when you’ve got Quadmodem. 

Quadmodem is a complete intelligent 
modem package, including an integral or 
standalone modem with supporting 
documentation. Each modem comes with 
QuadTalk—a powerful communications 
software package plus an introductory 
offer from The Source^*^ 



Just pick the model that’s right for you and 
your computer. 

The Integral Unit drops into an IBM PC, XT, 
PCjr or Apple lie. 

The Stand Alone is an inteiligent modem 
that connects to your system through an 
RS-232 port. 

Both have enhanced diagnostic capability to 
troubleshoot not only your ^stem, but the 


system at the other end of the phone line. 
And both have call progress monitoring to 
automatically determine and compensate 
for different types of phone systems and 
transmission status (human voice, busy 
signal, data or dial tones). Of course, both 
plug directly from your computer into your 
phone jack. 

Get the modems with the name for quality. 
Quadmodem™ Fully compatible with Bell 
103/212A dial-up modems and the most 
popular modem brands. 


2.Quad3278™ 

Let an IBM PC communicate 



To integrate your PC into a mainframe 
environment, look to Quadram first. 


Because now you can have all the features 
of the IBM PC (mass storage and peripherals) 
plus the incredible power of a mainframe 
right at your desk. All it takes is Quadram’s 
3278 emulation package which includes 
hardware, software, even cabling. 

To make your IBM PC emulate the 3278 
Display VVbrk Station, get the Quad3278!^ 
Once you’re on-line the IBM mainframe 
sees you as just another 3278 terminal. 
Little does it know that you’re actually a 
high-performance, intelligent work station, 
with all the functions of the Personal 
Computer. With mainframe support you 
can download data, process it on your PC, 
even store it on your own disk for later 
reference. 

Make the connection from micro to main¬ 
frame. And back it up with Quadram quality. 
It’s the logical step for the future. 

3. Quadnet ™ 

Tlirns your IBM PC’s into 
a Local Area Network. 

Local Area Networking (LAN) is one of the 
most interesting md useful ideas to come 


down the pike. Basically, it allows you to 
inter-link a group of computers together so 
they can share information and peripherals 
with each other. 



And now with Quadnet, you don’t have to 
compromise your system to fit our system. 
Instead, you can easily link as few as two, or 
as many as 255 IBM PC’s together in a hard¬ 
wired network. And you can configure 
them almost any way you want. They can 
work independently of each other or share 
resources and peripherals. 

The possibilities are endless. But the 
important thing to remember is that 
Quadnet gives you a choice with four 
different Network Systems. Choose the one 
that meets your price and performance 
needs. 

Quadnet grows as you grow. Yet the user 
commands stay the same, thanks to the 
upward compatibility of the Quadnet 
operating software. 

Whichever version you hook on to, you get 
a complete package (hardware, software, 
and documentation). And most importantly, 
you get Quadram’s reputation for quality. 


QUADRAM QUALITY 



At Quadram, we don’t 
make personal computers. 
We just make them 
better. So insist on the 
Quadram name. It’s your 
assurance that you’re 
buying from one of 
the most established 
and involved 
companies in the microcomputer field. Ask 
your dealer about us. 


IBM- PC. XT. PCjr, are registered trademarks 
of International Business Machines Corporation. 

'The Source is a registered trademark of 
Source Telecomputing Corporation. 

APPLE lle^ is a registered trademark 
of Apple Computers. Inc. 

©Copyright 1984 Quadram Corporation. All rights reserved. 


QUADRAM 

' ^ An Intelligent Systems Company 

4355 International Blvd./Norcross, Ga. 30093 
(404) 923-6666/TWX 810-766-4915 (QUADRAM NCRS) 


CIRCLE NO. 191 ON READER SERVICE CARD 


INTERNATIONAL OFFICES 

Interquadram Ltd. 442 Bath Road. Slough. England SL16BB 
Tel 6286-63865 Tlx 847155 Auriema G Interquadram GmbH 
Fasanenweg 7 6092 Kelsterbach. West Germany Tel 6107-3089 
Tlx 417770 Seva G Interquadram s.a.r.l. 4i. Rue Ybry, 92522 Neuilly 
Tel 758-1240 Tlx 630842 Iso Bur Chevco Computing 6581 Kitimat 
Road. Mississauga. Ontario. Canada L5N-2X5 Tel 416-821-7600 










Has Your IBM PC 
been suffering from lack 
of communication? 




The Information Interface 


What’s s(q>porting 
YOttflBMFC? 


The First Information Management 
System That Takes Your P.C. 
Seriously. 

Combines, in a single integrated 
system, all of the historically separate 
functions of database manager, report 
generator, query language, forms 
facility, database definition, data 
dictionary, and programming 
language. 


1785 Woodward Drive 
Ottawa, Onta rio K2C OR 1 
(613)727-1397 


The first commercially available 
Information Management System 
which uses the Entity Relationship 
Model of Data. It captures not only 
data, but also the way in which it is 
structured. Generates information 
applications as much as 20 times 
faster than conventional methods. 



INFORMATION INC. 


CIRCLE NO. 148 ON READER SERVICE CARD 

FOR USE ON IBM PC® & XT®, 
HYPERION®, COLUMBIA®, 
EAGLE®, COMPAQ®, CORONA® 
AND RAINBOW®. 














Taligrass 




TaiK-HAfdFWc 
2e ' 20 Mb 


In today's hard disk jungle, Tallgrass clears 
a path by offering high performance, integrated 
mass storage solutions for the IBM® PC/XT, the 
T.I. Professional and related computers. 

TALLGRASS INNOVATIVE FEATURES 

MASS STORAGE SYSTEMS with formatted 
HardFile^'^ capacities of 6, 12, 20, 35 and 70 Mb, 
all with built-in tape backup. 

CONVENIENT INTEGRAL TAPE BACKUP 
SYSTEM allows rapid tape "image" streaming, 
or incremental file-by-file backup and restore on 
ANSI standard inexpensive data cartridges, 
instead of the usual floppies, video cassettes, or 
low-capacity removable Winchester devices. 
NETWORK READY and fully compatible with 
networks such as PCnet®and EtherShareT'^ 
HIGH RELIABILITY with dual directory and 
read-after-write verify options. A dedicated 
landing zone, where the read/write heads reside 
when the disk is idle, provides data protection 
during powerdowns and transportation. 


Follow the Tallgrass path to your local computer 
dealer and watch your personal computer transform 
into a powerful data processing system. 

Available from COMPUTERLAND® Entre® 
Computer Centers, MicroAge® Computer Stores 
and other participating computer dealers. 

New! 

IBM-XT Cartridge 
Tape Backup 

World Headquarters: Tallgrass Technologies Corp. / 11100 W. 82nd St. 

Overland Park, KS 66214/913/492-6002/Telex; 215406 TBYT UR 

Canadian Headquarters: Tallgrass Technologies (Canada), 1775 Meyerside Drive 
Mississauga, Ontario, Canada L4V 1H2/ 416/ 673-3244 

Eurojjean Distributor: CPS Computer Group, LTD 
Birmingham, England B276BH/{021) 7073866 

Australian Headquarters: Tallgrass Technolgies (Australia)/Five Dock Plaza, 

Suite 12/50 Great North Road/Five Dock/Sydney, N.S.W. 2046/(02) 712-2010 

CIRCLE NO. 234 ON READER SERVICE CARD 

Tallgrass 
Technologies 

Corporation 



IBM® is a registered trademark of International Business Machines Corp. PCnet® is a trademark of Orchid Technology EtherShareis a registered trademark of 3Com Corp. 











92 


FOR IBM PERSONAL C OJVl PUTER USER 

nn' 



Volume 2, Number 3 
September 1984 




OURNAL 


Articles 


POOR RICHARD’S CONVERTER: FROM A TO D 

WILLIAM H. MURRAY / DASC0N-1 demonstrates its usefulness as an A/D converter. 

30 

HIGH-TECH MIMICRY 

AUGIE HANSEN / Ten terminal emulation systems are tested, and all score well. 

46 

OMNIUM-GATHERUM 

SUSAN GLINERT-COLE and )ULIE ANDERSON / Omninet does a 

respectable job handling the microcomputer networking needs of a small business. 

56 

COMPARING GREAT THINGS WITH SMALL 

ARTHUR A. GLECKLER / IBM invades both ends of the printer market spectrum. 

65 

THE DOS COMMAND IBM FORGOT 

DOUGLAS RITARI / EPSON.COM simplifies the use of a variety of printer options. 

79 

OKI DOKEY: FROM PC TO OKIDATA 84 

lEFF GARBERS / The Okidata 84p can be made to print the PCs line-drawing characters. 

92 

STRINGS 

CHRISTOPHER MORGAN / The third excerpt from Bluebook of Assembly Routines. 

111 

LIFE IS SIMPLE WITH APL 

PARDNER WYNN / APL puts in a winning performance at the game of Life. 

129 

THE BEST OF BOTH WORLDS 

GREGG L. PETTIT / A set of macros improves programming efficiency. 

151 

ASSEMBLERS WITHOUT ULCERS 

ERIC S. RAYMOND / ASM-86 turns into a structured programming language. 

173 


Departments 

Tech Notebook 

Products 

Directions 5 

23: Behind BASIC's Back 198 

Tech Book 199 

Letters 14 


Tech Mart 203 

Newsline 24 


Product Index 205 

Legal Brief 188 

Tech Releases 192 

Calendar 208 


Advertisers’ Index 207 


September i984 


3 









































TAURUS 
TAKE CONTROL 
TEAM 

Data acquisition and process control 
systems for your personal computer 


No matter what your applica¬ 
tion in computer automation, 
Taurus Computer Products Inc. 
has a team of products with the 
power and performance to let 
you take control. Easy and afford¬ 
able solutions that can read data 
from factory, field or lab; make 
decisions based on user-supplied 
parameters and output the 
instructions and controls back to 
the real world. 

Take TAURUS LAB, the research 
tool that can plug into any personal 
computer with command func¬ 
tions like simple read and write, 
high speed block reads, pulse 
counting and direct thermocou¬ 
ple input. And there’s TAURUS 
ONE for industrial process con¬ 
trol applications. That’s where 
rugged, reliable performance 
matched with cost effectiveness 
and expansion capabilities pay 
their way. 


And meet the newest member of 
our team - TAURUS BOARD - 
a single, plug-in system that can 
easily harness the power of 
your IBM PC or XT. It can handle 
16 analog inputs and 2 analog 
outputs with 12-bit resolution plus 
16 digital I/O signals and 4 
event counters. What’s more, it 
comes complete with a signal 
termination panel, interconnecting 
ribbon cables, software that’s 
compatible with all our products. 

Get all the details, options and 
prices on the Taurus team of 
data acquisition and process con¬ 
trol products for IBM and other 
personal computers. Taurus backs 
all systems with comprehensive 
customer support and warranty 
program. Give us a call today 
and let’s discuss your specific 
applications. Automation and 
control were never this easy, this 
affordable. 

TAURUS LAB, TAURUS ONE and TAURUS BOARD are 
trademarks of Taurus Computer Products Inc. 

IBM is a registered trademark of International Business 
Machines Corporation. 


17UJRUS 

COMPUTER 

PRODUCTS 

INC 


340 Commercial St 
Manchester 
NH 03101 
United States 
(603) 623-7505 


1755 Woodward Dr 
Ottawa, Ontario 
Canada K2C 0P9 
(613) 226-5361 
Telex 053-3577 


rOURNAL 


I VOL. 1 , NO. 3 

Publisher: Jeff Weiner 

Editorial 

Editor: Will Fastie 

Managing Editor: MARJORY Spraycar 

Technical Editors: JULIE ANDERSON, 

Susan Glinert-Cole 
Senior Copy Editor: Susan Holly 
Copy Editor: Barbara Tilly 
Research Assistant: ARTHUR A. Gleckler 
Contributing Editors. Ray Duncan, Richard 
Foard, Augie Hansen, Thomas V. Hoffmann, 
Sol Libes, William H. Murray, Max Stul 
Oppenheimer 

Editorial Secretary. Diana L. Carey 
Editorial Assistant. CAROLE AUTENZIO 


Art & Production 

Art Director. Nancy Lepow 
Assistant Art Director. Jane Frey 
Art Assistant: Sandra Ray 


Advertising Sales 

Advertising Director. Newt Barrett 
Advertising Coordinator. Sheryl Panzer 
District Managers. RITA Burke, Ian Smith- East 
Coast; Caroline Anderson -Midwest; Ted Bahr, 
Harriet Rogers- West Coast 
Account Sales Manager. PAULINE SCHERER 
Account Representatives. STEVE CANNON—East 
Coast; JOHN Grogan -Midwest; Bill Bush, 
Arlene Steadman -West Coast 


Circulation 

Subscription Director. Chet Klimuszko, Direct 
Mail Manager. ERIC A. BERNHARD, Renewal 
and Billing Manager. Shane Boel 


Consumer Computers &. Electronics 
Magazine Division 

President. Larry Sporn 
Vice President, Marketing. J. ScOTT BRIGGS 
Vice President, Circulation. Carole Mandel 
Vice President, General Manager. ElLEEN G. 
Markowitz 

Vice President, Licensing and Special Projects. Jerry 
Schneider 

Vice President, Creative Services. Herbert Stern 
Creative Director. Peter J. Blank 
Editorial Director. JONATHAN D. Lazarus 
Marketing Manager. Ronni Sonnenberg 


Ziff-Davis Publishing 

President, Richard P. FriesE; President, Consumer Magazine 
Division, Albert S. TrainA; Executive Vice President, Market¬ 
ing and Circulation, PAUL H. ChooK; Senior Vice President, 
Phillip T. HeffernaN; Senior Vice President, Sidney HoltZ; 
Senior Vice President, Edward D. MuhlfelD; Senior Vice Pres¬ 
ident, Philip SinE; Vice President, Baird DaviS; Vice President, 
George Morrissey, Vice President, Rory ParisI; Vice President, 
William L. Phillips,- Treasurer, Selwyn TaubmaN; Secretary, 
Bertram A. Abrams 


PC Tech Journal (ISSN 0738-0194) is published 12 times a year, 
$29.97 for one year, $52.97 for two years, $69.97 for three years. 
Additional postage $12 for Canada &. Foreign by Ziff-Davis 
Publishing Company, One Park Avenue, New York, N.Y. 
10016. Application for Second-Class Postage Rates pending at 
New York, NY 10001. POSTMASTER. Send address changes or 
subscription inquiries to PC Tech Journal, P.O. Box 2968, 
Boulder, CO 80321. 


Business Offices: Advertising, One Park Avenue, New 
York, NY 10016. 212-725-7947. Subscription inquiries to PC 
TECH JOURNAL. P.O. Box 2968, Boulder, CO 80321. 
Subscription service. 212-725-3628. Back issues, send $7.00/copy 
to PC TECH JOURNAL. Box CN 1914, Morristown, NJ 07960. 


Editorial Office: PC TECH JOURNAL. The World Trade 
Center, Suite 211, Baltimore, MD 21202. 301-576-0770. The 
Source ID STY682. CompuServe 74156, 2365. 


PC Tech Journal is an independent journal, not affiliated in any 
way with International Business Machines Corporation. IBM is 
a registered trademark of International Business Machines Corp. 
Entire contents Copyright ® 1984 Ziff-Davis Publishing 
Company. All rights reserved; reproduction in whole or in part 
without permission is prohibited. Contact Jean Lamensdorf, 
Manager, Reprints/Rights &. Permissions. BPA membership 
(Selected Market Audit Division) applied for October 1983. 


CIRCLE NO. 225 ON READER SERVICE CARD 

























DIRECTIONS Will Fastie 


Printer Standards 

After more than fifteen years of inexpensive printers, 
we still have weak standards. 


The computer industry's record of 
setting and then sticking to stan¬ 
dards is worse than my record of 
getting home on time. My wife can 
tell you how terrible that must be. 

One reason for this is just plain 
stubbornness on the part of the 
manufacturers. 1 mean, give some¬ 
body just a few unused codes in the 
ASCII set and WHAM!, they've got 
a way to accomplish some special, 
proprietary function. The thought 
of doing what everyone else is doing 
is anathema: after all, the whole 
point is to offer greater features or 
to deliver some gimmick. 

The industry has done quite 
well in some ways. From an elec¬ 
tronic point of view, we benefit 
each day from numerous standards 
that we probably take for granted. 
The RS-232-C standard is so strong 
that we can buy an adapter, cable, 
and modem with 99.44-percent cer¬ 
tainty that it will all plug together 
and work. The 5 ^4-inch floppy 
drive has become so standardized 
that add-in drives can be purchased 
from mail-order sources with confi¬ 
dence. A wide selection of display 
monitors uses either the composite 
or the RGB standard. Most printers 
will interface either to the so-called 
Centronics parallel interface or to 
an RS-232-C serial port. 

Beyond the electrical interface 
is the question of how a device at¬ 
tached via one of these interconnect 
standards behaves. Most computer 
systems operate serial ports properly 
and consistently. Displays usually 


differ only in resolution, and so far 
it has been easy and economical to 
build displays that meet the resolu¬ 
tion requirements of small comput¬ 
ers. Diskette drives have been more 
complicated, but there is a program 
for the PC that can read and write 
about 40 different formats and con¬ 
vert data from one format to anoth¬ 
er, so the problem of incompatible 
systems can be solved. 

Printers, on the other hand, 
don't conform as well. Actually, 
they don't conform at all It's not 
only irritating, it's confusing. 

Most printers available today, 
whether dot matrix, daisy wheel, or 
some other technology, are able to 
print at least a subset of 7-bit ASCII 
characters that I will refer to as the 
96-character set. It includes the nu¬ 
merals, upper- and lower-case let¬ 
ters, common punctuation marks, 
and a few control characters such as 
line feed and carriage return. This 
character set is sufficient to meet 
the needs of most users when it 
comes to programming or word pro¬ 
cessing. At this level, most printers 
can be said to conform to a standard, 

That is, however, the standard 
of 15 years ago. The revolution in 
dot matrix technology has spawned 
a generation of printers with ex¬ 
tended character sets, multiple type 
fonts, multiple pitch sizes, print en¬ 
hancements, and (this is the rub) 
graphics capabilities. Not only do 
these printers support a full 256 
characters (8-bit ASCII), some pro¬ 
vide several full 256-character sets. 


Things got rolling with the 
TRS-80 Model I. It is clear in retro¬ 
spect that someone saw how the 
low resolution of the Model I's dis¬ 
play could be duplicated with a spe¬ 
cial block-character set built into 
the printer. Soon, Epson began de¬ 
livering printers that included this 
character set. Epson also provided a 
dot-by-dot graphics capability, and 
the era of the contemporary person¬ 
al computer printer was born. Ep¬ 
son's MX series of printer became 
something of a standard. 

Now that's a good story. Unfor¬ 
tunately, another company came 
along with its improvement and 
mucked things up. Have you 
guessed who? Yup. IBM. 

At first, IBM kept pretty close 
to the standard. The first model of 
the IBM PC printer, an MX-80 in 
disguise, even included the TRS-80 
graphics character set, which IBM 
called the "ASCII-Graphic Matrix." 
fust as IBM announced its printer, 
however, Epson began to include 
the Graftax-PIus ROM as a standard 
feature in its models. IBM followed 
with the Personal Computer Graph¬ 
ics Printer. It was at this point that 
IBM made a proprietary decision. 

IBM's new ROM removed the 
TRS-80 block graphics entirely in 
favor of a representation of the IBM 
character set. The new printer was 
thus capable of printing almost 
every character that could be dis¬ 
played on the screen, with some 
limitations. In addition, the IBM 
printer was almost, but not quite. 


September i984 


5 
















Most Program Editors 
Are Shockingly Primitive. 



Use Pmate™ once, and you’ll 
never go back to an ordinary 
text editor again. Pmate is more 
than a powerful programmer’s 
text processor. It’s an inter¬ 
pretive language especially 
designed for customizing te)d 
processing and editing. 

Just like other powerful edi¬ 
tors, Pmate* features full-screen 
single-key editing, automatic 
disk buffering, ten auxiliary 
buffers, horizontal and vertical 
scrolling, plus a “garbage 
stack’’ buffer for retrieval of 
deleted strings. But, that’s just 
for openers. 

What really separates Pmate 
from the rest is macro magic. A 
built-in macro language with 
over 120 commands and single¬ 
keystroke “Instant Commands” 
to handle multiple command 


sequences. So powerful, you 
can “customize” keyboard 
and command structure to 
match your exact needs. 

Get automatic comments on 
code. Delete comments. Check 
syntax. Translate code from 
one language to another. Set 
up menus. Help screens. You 
name it. 

And, Pmate has its own set 
of variables, if-then statements, 
iterative loops, numeric calcu¬ 
lations, a hex to decimal and 
decimal to hex mode, binary 
conversion, and a trace mode. 
You can even build your own 
application program right 
inside your text processor. 

So, why work with primitive 
tools any longer than you have 
to? Pmate by Phoenix. $225. 
Call (800)344-7200, or write. 


Phoenix Computer Products Corporation 

1416 Providence Highway, Suite 220 
Norwood, MA 02062 
In Massachusetts (617) 769-7020 

* Pmate is designed for microcomputers using the Intel 8086 family of 
processors, and running MS-DOS!^ A custom version is available for 
the IBM PC, Tl Professional, Wang Professional, DEC Rainbow, 
and Z80 running under CP/M!^ 

Pmate is a trademark of Phoenix Software Associates Ltd. 

MS-DOS is a trademark of Microsoft Corporation. CP/M is a trademark of Digital Research. Inc. 


DIRECTIONS 


CIRCLE NO. 143 ON READER SERVICE CARD 


compatible with the Graftrax-Plus 
standard. This new IBM printer was 
thus quite attractive for the user 
who desired an integrated system. 

Unfortunately, it was an¬ 
nounced at about the same time the 
next wave of the Epson product 
line, the FX family, emerged. The 
FX, with its greater speed and en¬ 
hanced capabilities, was an attrac¬ 
tive choice, but it did not provide 
the IBM character set. 

Meanwhile, a Japanese printer 
invasion was underway. I hope you 
are not surprised to learn that these 
printers conformed to no standard. 
To be fair, some did match the Ep¬ 
son specifications, but most did it 
their own way, and none included 
the IBM-style character set. 

That leaves us with a mess. As 
PC owners, we would like to have 
printers with all the nice, new fea¬ 
tures, but it is also handy to have a 
machine that matches properly 
with the computer. There seems to 
be no way we can have IBM capa¬ 
bility and the most up-to-date fea¬ 
tures in one machine, although no 
technological barriers prevent it. 
Also, as software developers, we 
would like to write applications and 
systems software that are indepen¬ 
dent of printer hardware yet take 
advantage of the more powerful fea¬ 
tures, particularly graphics, that the 
printers can offer. 

I think it's about time for a 
stronger standard to emerge. The TI 
855 printer demonstrates that such a 
standard is possible. It includes an 
Epson-like mode as well as a Diablo 
630 emulation. Font cartridges are 
already available. Forthcoming op¬ 
tions for the machine are supposed 
to provide IBM compatibility and 
loadable character-set definitions. 

Printers need to provide power 
and flexibility. More important, 
they need to become as interchange¬ 
able as stereo components. I believe 
that such standardization would 
have a far-reaching effect on the 
useability of small computers, to the 
long-term benefit of us all. nm^i 

PC Tech Journal 
















Call Micro Mart’s 
Corporate Accounts Division 
and make more than a 
"Connection." 



Discover America's largest 
Source of premium IBM PC com¬ 
patible hardware and software. 

You are a chief decision-maker 
for the development of your com¬ 
pany’s PC System.You 
*■^11 chose iBM for all the 
right reasons. 
Affordability. 
Performance. Flex- 
■liil; ibility. Reliability. 




1 EPSON 

1 FX-ao 



You've studied 
the many 
choices of 
hardware 
and soft¬ 
ware after-market 
configurations that are all readily 
available from our multimillion 
dollar inventory. AST, QUADRAM, 
SPIN WRITERS. EPSON, OKIDATA, 
TANDON, SHUGART, HERCULES, 
MICROSOFT, ASHTON TATE, and 


MICROPRO are only a sampling of 


our industry leading selection — 
All at special "Fortune 500 ”pricing. 



Now it's time to call 
America's PC Specialists at 
Micro Mart. 

You can be sure your order will 
be expedited A.S.A.P., and at very 
competitive pricing. We’re the 
source that really delivers, and 
keeps on delivering. Remember 
you can count on Micro Mart for 
the best service and technical 
support to get you up and run¬ 
ning and keep you there. So pick 
up your phone and give us a call, 
and as always demand your best 
price and expert advice. 


ATLANTA 
404-956-8088 
404-449-8081 
CHARLOTTE 
704-568-7470 
FT. LAUDERDALE 
305-749-0330 
TAMPA 
813-972-5000 
LOUISVILLE 
502-895-5624 
WASHINGTON D.C 
301-294-9000 
ORLANDO 
Coming Soon 
NEW ORLEANS 
Coming Soon 


Micro Mart Headquarters 
3159 Campus Drive, Norcross, GA 30071 

CORPORATE ACCOUNTS 
HOTLINE-ORDERS ONLY 

1 - 800 - 241-8149 

FOR INFORMATION 
404 - 449-8089 

Show Our Ads To Your 
Purchasing Agent, Please 


CIRCLE NO. 203 ON READER SERVICE CARD 






































What do you get when you cross 
1200 baud, free on-line time, 
and extra features at a price Hayes 
can’t match? 


Shopping for a modem 
doesn’t have to be a riddle. A 
tedious sifting through claims 
and counterclaims. A quest 
for the best that raises more 
questions than it answers. 

The new MultiModem, 
from Multi-Tech Systems, 
gives you the right answers 
from the start. The answers to 
all your questions about what 
a first-rate intelligent modem 
should do for you. 

Data Transmission 
Speed? 

The MultiModem gives 
you a choice—either 1200 or 
300 bits per second. 1200 for 
fast, efficient communications 
and lower long-distance 
charges. Like when you’re 
downloading data from the 
corporate computer, or swap¬ 
ping files with a friend across 
the country. 300 bps for your 
less demanding applications, 
like checking out bulletin 
boards, playing games, or 
having on-line keyboard 
conversations. 

Free On-Line Time? 

With the MultiModem you 
get CompuServe’s DemoPak 
—a free two-hour demonstra¬ 
tion of their service, and up to 
seven more free hours of on¬ 
line time if vou subscribe. You 
also get a ^50 usage credit 
from NewsNet, a service 
which lets you tap into 150 
different specialized business 
newsletters. 

Inteiiigence? Extra 
Features? 

Of course, the Multi- 
Modem automatically dials, 
answers, and disconnects. 

But it does a few extra things 
too, things the Hayes Smart- 
modem 1200'“ doesn’t. Like 
recognize dial tones and busy 
signals, so the MultiModem 
will automatically redial, or 
automatically try a different 
number. And It remembers 
phone numbers too, up to six 
of them, in Its battery-backed 
memory. 

Trademarks— MultiModem. MultiCom PC. Multi-Tech 
Systems. Inc.—CompuServe: CompuServe Information 
Services, anH&R Block company — NewsNet: NewsNet. 
Inc.—Smartmodem: Hayes Microcomputer Products, 
Inc.—Oosstalk: Microstuf, Inc.—Data Capture: Southeast¬ 
ern Software—PC-Talk III: Freeware/The Headlands Press. 


MultiModem. 


Hayes-compatibility? 

Yes, the MultiModem is 
Hayes-compatible. (Most soft¬ 
ware requires modems that 
are.) That means the Multi- 
Modem will run with popular 
communications programs 
like Crosstalk XVI, Data 
Capture, PC-Talk ill, our own 
MultiCom PC, and dozens of 
others. 

What About Price? 

At $549, the MultiModem 
retails for $150 less than the 
Smartmodem'“. You get 
Hayes-compatibility and so 
much more—for so much 
less. 


What do you get when 
you cross all these things? 

The MultiModem. From Multi- 
Tech Systems—a company 
that’s been making top-quality 
modems for over thirteen 
years. 

Isn’t this the answer 
you’ve been looking for? 

CIRCLE NO. 204 ON READER SERVICE CARD 



For the name of your 
local distributor, write to 
Multi-Tech Systems, Inc. 

82 Second Avenue S.E. 

New Brighton, Minnesota 55112. 
Or call us at (612) 631-3550. 



The right answer every time. 





The new HERCULES 
Color Card * 

^ves you the 


parallel port 
IBM forgot-for ^1 mora 




And it fits into the XT’s short slot. 

The new Hercules Color Card gives you these five important 
features in a color graphics card. 

1. A parallel printer port. If you buy IBM’s color card, you 
won’t get a parallel port for a printer. Ugh. You’ve just wasted a 
valuable slot for an extra printer card. 

2. It’s short. Our new Color Card uses advanced gate array 
technology to reduce the chip count by 30 and use less than half the 
board space IBM does. Which makes the new Hercules Color Card 
perfect for the short slot in an XT. 

3. Fully IBM compatible. Any program that runs on IBM’s 
color card will run on the new Hercules Color Card. With RGB or 
composite video, any IBM compatible monitor will work too. 

4. Hercules Graphics Card compatible. If you have a Hercules 
Graphics Card (model GBIOI or later), or plan to buy one, an 
ingenious software switch on our new Color Card allows both cards 
to be kept in the system at the same time. 

5. Low price. At a suggested list price of $245, the new 
Hercules Color Card has all these features for only $1 more than 

IBM’s color card. 

Call for our free information kit. See why the 
company that made the first graphics card for 
the IBM PC still makes the best. 

Hercules. We’re 
strong on graphics. 
800 255 5550 Ext. 423 



Address: Hercules, 2550 Ninth St, Berkeley, CA 94710 Ph: 415 540-6000 Telex; 754063 Features: 2 year warranty Foreign distributors: 
Compuserve/Canada; Reflex/U.K.; Computer 2000AV. Germany; Edisoft/France; Source Ware/Australia. Trademarks/Owners: Hercules/Hercules 
Computer Technology; IBM/Intemational Business Machines. 

This price comparison is based on the Suggested List Price as of2.22.84 for the IBM Color Graphics Adapter. 



’■M^m 


□UU' 




ecof'lrwardSufQ®'' __ 

’nnQ(!C. ._ 


UL/CSA pending 


Curtis Manufacturing Co. Inc. 
305 Union Street 
Peterborough, N.H. 03458 


r-P 

$49,951 



) EMI 




i«S?SS’SSs5K» 

D, I se K/inxinnu'_' ^ ^ 


Lit!® . 'opef<^^ 


rsssig-’s!^*V 


BK:JR0MC SURGE 


mHTmjEWBm 


Curtis electronic surge protectors cost less and offer a lifetime performance warranty while protecting 
your valuable computer hardware and software from dangerous, potentially damaging powerline 
overvoltage transients - "surges, spikes, and glitches" - that can cause instant failure or drastically reduce 
system life. With our specially designed EMI-RFI filters, your system is protected from troublesome 

office equipment general hash created by small motors, 
fluorescent lamps, and the like. 





Manufacturing Company, Inc. 


PROTECIORS CURTIS 


TOUCH 


Each of these precious jewels, will easily blend with the colors 
of any modern office or home surroundings. For safe, trouble- 
free performance, give your computer that jewelers touch. 


Available at all ComputerLands, 
Sears Business Systems Centers, 
Entre Computer Centers, Businessland, 
Inacomp, MicroAge, Bezel, or your local 
microcomputer dealer. Over 1000 
locations nationally! In Canada: Micro¬ 
computer Products, PO. Box 235, Ajax, 
ONI Canada L1S 3C3, (416) 427-6612. 

For the Curtis dealer nearest you 
call (603) 924-7803 
CIRCLE NO. 125 ON READER SERVICE CARD 











swrtcMjJs°V25 to g', 581 

lurgeJ^yiJfiaOSec. \ 







The tmth about information mana2;cmcnt: 


KnowledseMari 


beats dBASEover 
250 ways. 


‘■S. .the leading seller is not the best!’ 

You get more from Know lcdgcMan. Relational data manage¬ 
ment, ad hoe queries (like IRM’s SQL/DS), spreadsheet, math 
and statisties, printed fonns management,sereen I/O manage¬ 
ment, a full-seale programming language. Plus you ean now' 
get a text proeessoi; a fonns paintei; eolor graphic's and a 
iTin-time x ei^sion. 

All completely integrated. So you ean do just about anything 
you w'ish. Like financial modeling, order entiy, job costing or 
decision suppoit. 

If yoifd like to see more about how' Know ledgeMan 
beats dRASH,see your dealer today and ask fora free 
feature-bv-feature comparison. Or call orw'rite: Micro Data 
Base Systems, Ine., P.O. Box 248, Latavette, IN 47902, 
(317)463-2581. 

Operaring Systems: I’CHOS, MS1X)S, CIVM 86. Rctiuircmcius: 192K RAM 
IVxi procfssinu, tt)nii.s paiiiiint; and color graph its aiv optional integrated KnowledgeMan 
eomponenis. 

KnowledgeMan is a trademark of'Micro Data Rase Systems, lnt.,dRASH II of 
Ashion-late.SQI., DSoi IRM.C iiirent release is 1.06 as 014/1/84. (lolorgraphics 
ivc|iiiivs l’( DOSand IRM eolorgraphics card orei]iii\alent. 

CIRCLE NO. 118 ON READER SERVICE CARD 


r 




a**?* 

b?.«^ 






cl** O** 

\ V'*' . c*'* V** 

\ 




' to* *■ \c **'' 

.<s I'* 

V'-*' ,»ccA'»* 


r’A**' 










15*-'TVs 


-Ses 


•s«s 


KNOWLEDGE 

rmn 


ihc Knowledge Manager from MDBS 






How Can You Avoid Getting 
Trapped Under An Ancient 
Word ^ Processor! 


Buy Word 
l^rfect! 


whether you are in “edit” or “create” 
mode. Your word processor should 
do it automatically and WordPerfect 
does. WordPerfect lets you think in 
terms of ideas, not pages. It is simple 
enough that you quickly forget about 
the mechanics and your writing flows 
easily. 

So if you don’t want to be caught 
under a word processing monster, try 
WordPerfect. We’re certain it will 
improve the quality of your writing. 


Once upon a time, word processors 
were monstrous things. Dot com¬ 
mands, page orientation, and separate 
editing, formatting and printing pro¬ 
grams turned them into lumbering 
beasts. Only a well-educated pro¬ 
grammer would dare don his armor 
and tackle such a beast — not a plea¬ 
sant task for a modern secretary, 
executive, or writer. 


Then came WordPerfect and the 
beast was slain. 


WordPerfect was designed to work 
for you not against you. WordPerfect 
has no command language to compli¬ 
cate your writing. Pressing a single 
key is all it takes to 

bold, underline or center. 

When writing, you don’t want to 
worry about page formatting, making 
room for headers or footers, or 




You’ll love it — 
not only for the features 
we’ve built in, but 
also for the 
antiquities 
we’ve 
left out. 


SATELLITE SOFTWARE INTERNATIONAL 



288 WEST CENTER STREET, OREM, UTAH 84057 (801)224-4000 TELEX 820-618 

CIRCLE NO. 236 ON READER SERVICE CARD 












LETTERS 



Patching Things Up 

The article "Time on Your Hands" 

(Bob Smith and Tom Puckett, May 
1984, page 146) addresses a problem I 
would dearly like to put to rest. I have 
crashed my system many times with 
the DEBUG TRACE command as dis¬ 
cussed in that article. Of course, 1 am re¬ 
luctant to install a patch in DEBUG 
that I cannot understand. I may then 
suffer even worse problems. Your article 
has solved nothing for me. 

I use DOS 2.0, and 1 refer only to 
the patch shown for that version of 
DEBUG on page 158. The code to re¬ 
solve the problem is inserted at offset 
2E80. It appears that the authors believe 
that this is beyond the end of the code 
loaded from DEBUG.COM. I infer this 
from the fact that the contents of CX, 
which contains the number of bytes 
loaded, is 2E80, and they proceed to in¬ 
crease the length by the length of their 
added code. In fact, the code is placed 
on top of DEBUG. Since COM files are 
loaded starting at offset 0100, the length 
2E80 runs out to 2F7F. If the authors 
meant to replace part of DEBUG, there 
is no need to increase its length. If they 
meant to put their code at the end, it is 
in the wrong place. In any case, it is 
not sufficient to place the patch at the 
end since that is the location of the new 
program segment built by DEBUG. 

I have installed the patch as shown 
and observed no problems. However, I 
am concerned that it is a bug waiting to 
show itself. Because of the apparent 
confusion of the authors, I can have no 
confidence. Since I have no idea what 
this region of DEBUG.COM is for, I 
cannot tell whether a problem is likely 
or not. I doubt, however, that this part 
of DEBUG.COM has no purpose. 

Can anyone find an appropriate 
place to put this patch code? 

Robert Duncan Scott 
Cincinnati, OH 


R.D. Scotts confusion is understandable 
and is my fault because I overlooked the 
effect of the PSFs offset. The result is 
that 1 wmecessarily increased DEBUG's 
length—our patch actually fits within 
the extra space at the end of DEBUG. 
However, this enor is harmless. 

A more detailed analysis of 
DEBUG'S memory usage shows the fol¬ 
lowing: DEBUG is loaded at offset lOOh 
in a certain segment. Its nominal end is 
2E80h bytes later at 2F7Fh. Its internal 
stack top is at 2AE2h with the bytes 
above there to 2CDDh taken up mostly 
by static data (message text, etc.). The 
large area from 2CDEh to 2F0Fh is used 
as a temporary work area (I don't know 
why it's so large). The new PSP built by 
DEBUG begins at 2F10h. Again, the 
nominal end of the program is at 
2F7Fh—beyond the point of the new 
PSP, suggesting that the program's 
length was rounded up (perhaps to a 
multiple of 128 bytes—the usual size of 
a Disk Transfer Area). 

Our patch appears from 2E80h to 
2EBlh—toward the end of the tempo¬ 
rary work area. It originally took up 
more of the space toward 2F10h, but 
subsequent changes reduced it to the 
cunent size. 1 decided not to relocate 
the final version of the patch closer to 
the new PSP, as that accompUshed little. 
The beginning address of the patch and 
the program length are coincidentally 
equal. All address calculations were 
done based upon snuggUng up to the be¬ 
ginning of the new PSP at 2F10h. The 
change in length of the patched program 
was an enor—though harmless. 

Considerable usage of the patched 
program has shown that no part of DE¬ 
BUG tramples on the patched area, al¬ 
though that can't be taken as proof. As 
with most patches to code for which no 
source is available, one can never be ab¬ 
solutely sure—only confident to a high 
degree, which we are. 

—Bob Smith 


3-D Question 

I have been exposed to BASIC off and 
on over the years— since about the time 
that it left Dartmouth, in fact. I think 
that I have learned BASIC and then for¬ 
gotten it about four different times. 

In all that time, I have never seen a 
program equal to the one published in 
the May issue of PC Tech Journal ("3-D 
Graphics for the IBM PC," Jay Mallin, 
page 36), in regard to concept, documen¬ 
tation, clarity, and even listing format. I 
have used a similar program, supplied 
by Digital Research for DR. LOGO, in 
my school classes, but because of the 
lack of documentation I never really 
knew what was going on. (Your pro¬ 
gram is orders of magnitude faster than 
the DR> LOGO version.) 

Congratulations on a fine article. 

I have been planning for some 
time to add an 8087 chip to my PC, and 
after reading your article I made the 
plunge and have placed an order for 
one. Is it possible, with the 8087, to pro¬ 
duce a THREED that actually rotates an 
object while you watch? 

Sam Stan 
Rose Valley, PA 

To modify the THREED program to ro¬ 
tate objects while you watch, you would 
have to make the the program divide ro¬ 
tations into small increments—maybe 
one degree—and rapidly move through 
them. Simply plugging in an 8087 won't 
provide the speed you need, since IBM's 
interpretive BASIC does not use the 
chip. But if you compile the program 
with a BASIC compiler that makes use 
of the 8087, it will probably provide the 
effect you are after. How well it works 
will depend partly on the speed of the 
line-drawing and other graphics routines 
the compiler provides. 

—Jay MaUin 


14 


PC Tech Journal 
















Wfe just made 

IBM’s PC/XT 20 times 

more powerftil. 

Introducing Dragon’s New 65 Mb and 140 Mb Hard DiskDrives. 




What makes Dragon the 
best hard disk drive for the 
IBM PC, XT, and compatibles? 

Larger Storage Capacity... 

With 65 Mb of on line storage, the SP-65 holds up 
to 57 Mb of formatted data. The SP-140 stores up to 
121 Mb of formatted data with a total capacity of 140 
Mb. No 5V4 inch Winchester stores more than these 
new Dragon Disks. 

Faster Access Time... 

At 30 msec, average access time, the SP-65 and 
SP-140 are faster than other 574 inch Winchesters... 

3 to 4 times faster. 

Better Features... 

The SP-65 and SP-140 come with hard disk, 
controller, host adapter, power supply, cables, and 
chassis. Both systems are compatible with PC-DOS 
and MS-DOS. 

More Options... 

Additional options include: Dual drives with up to 280 

CIRCLE NO. 144 ON READER SERVICE CARD 


Mb formatted). Streamer 

tape and random access back up. 90 day warranty. 
Responsive technical help. 

For more information, contact Dragon Industries. 
35 Main Street, Hopkinton. Mass., 01748. 

(800) 824-8006 or (617) 435-4183 in 
Massachusetts. Distributor and OEM 
inquiries invited. 

Dragon Industries 

Turning Micro Computers into Monster Computers. 


Dragon Industries 

35 Main Street, Hopkinton, Mass. 01748 

Name_ 

Company_ 

Address_ 

Telephone_ 

Computer_ 

OS Version_ 

Interested in: □ SP-65 
□ SP-140 



















THE EHD OF SOFTNRRE 
FREEBESl 



Finally there’s a foolproof way to protect 
software against unauthorized duplication. 
And the technology is all on the disk itself. 

The new Prolok™ disk doesn’t need add¬ 
on hardware. Instead each diskette is marked 
with a unique, physical “fingerprint.” No two 
are alike. A precise description of the individ¬ 
ual print is encoded magnetically. The finger¬ 
print AND the description must match exactly 
before the software is decrypted and released 
to the system. No match, no access. 


Its genius is its simplicity and familiarity. 
Prolok looks like an unprotected disk, loads 
like an unprotected disk, works like an 
unprotected disk. The user feels immediately 
at home and in command. 

Backups are easily made via normal sys¬ 
tem utilities. However, to be read they must be 
accompanied in the system by the original 
Prolok disk. 

Prolok puts the casual copier-and even 
the deliberate pirate-out of business. It barely 


PROIOK. SOFTHRM 







increases the price of your product, yet it 
makes sure your customers don’t buy one pro¬ 
gram and copy ten. 

Several command line slash (/) options 
are built into Prolok diskettes for customized 
security, depending on your needs. 

Software can be loaded easily onto Prolok 
diskettes using any system from a PC to com¬ 
mercial mass duplication equipment. 

Prolok is an engineering breakthrough of 
Vault Corporation, which has been success¬ 


fully safeguarding software since the inception 
of security disk technology. Over 2000 busi¬ 
nesses and organizations protect their valu¬ 
able programs with Prolok. 

Simply contact Vault Corporation at 2649 
Townsgate Road, Suite 500, Westiake Village, 


CA 91361. Or phone us at 800- 
445-0193 (U.S.) or 800-821- 
8638 (California). And find out 
why software freebies are 
becoming a thing of the past. 


PROLOK 



mOTEaiOH, RKHT OH THE DISK. 


Copyright ©1984 Vault Corporation Prolok is a trademark of Vault Corporation 


CIRCLE NO. 180 ON READER SERVICE CARD 





Clock/Calendar 
Automatically inserts the date and time 
when you turn on your computer. 



Encode/Decode 

Ensures the security of your files. 




Calculator 

Does your figuring in 
background mode so you 
won t have to change 
programs. 




' Memo 
Writes 
memos and 
keeps a 
written 
record of 
each one. 


Personalized form letters 
Uses your file to personalize 
your letters and make labels. 


Appointment 

Reminder 

^ Lets you know where 
to be and when. 


Tfeonar thinlffi your PC 


As your business grows, so should your 
computer. Only Tecmar offers you this unique 
package of hardware and free softwcire. With it 
your PC can grow to its full potential. 

Tecmar Multifunction Boards... 

“extremely powerfur—PC World 
A Tecmar board will expand your computer’s 
memory and increase its speed and efficiency. 
It will give you additional ports to accommodate 
a wide range of peripherals from modems and 
plotters to dot matrix and letter quality printers. 


With a Tecmar board you can run powerful pro¬ 
grams hke Lotus 1-2-3™* and WordStar®'^^ on a 
PCjr. The RamSpooler makes printing a back¬ 
ground task and frees your PC for other jobs. 

A built-in clock/calendar automatically inserts 
the date and time at power on and is indepen¬ 
dently powered by an easily replaced battery. 

Every Tecmar multifunction board is run 
through a series of rigorous tests to ensure quahty. 
Our incredibly low failure rate (0.4%) is un¬ 
paralleled. All boards are additionally backed 
by a full one-year warranty. 


















Banner 

Allows you to print in a variety of type 
sizes. Even large banners! 


Rolodex t 
Finds the name and number 
you need instantly without i 
changing programs. I 


Hardware Diagnostics 

Tests your PCs memory and parallel 

ports to stop problems before they happen. 


Personal Finance 
Balances your 
checkbook 
and helps 

you keep an M 

inventory. d 


should do all of the above. 


Free Software “...a chest of Jewels !’-pc Week 
Great hardware deserves great software. So, if 
you buy a Tecmar board we’ll give you our 
Treasure Chest™ of Software at no extra charge. 
The Treasure Chest consists of 24 
programs that include business 
applications, a calculator, a 
security system, hardware diag¬ 
nostics, even games! Most of 
these can be run in background 
mode with programs like Lotus 
1-2-3 and WordStar. Using these 


features is as easy as a couple of keystrokes, 
and without changing disks. No other company 
offers you such an extensive array of software 
with their multifunction boards. 

So, ask your dealer for a demonstration 
of any of Tecmar’s multifunction 
boards. And check out the free 
software while you’re there. Or 
call 216-349-0600 for the dealer 
nearest you. 

’■‘Lotus 1- 2- 3 is a registered trademark of the Lotus Development Corporation. 
tRolodex is a registered trademark of the Rolodex Corporation. ttWordStar 
is a registered trademark of the MicroPro International Corporation. 



Tecmar 

THE POWER BEHIND THE PC 


CIRCLE NO. 154 ON READER SERVICE CARD 



















LETTERS 


An Easier Way 

Please accept the following contribution, 
which we believe to be a better ap¬ 
proach to intercepting commands under 
DOS than was explained in "Disarming 
DOS FORMAT" (fames A. Folts, July 
1984, page 32). This is a trick we 
learned from National CBS timesharing 
in the early 1970s. 

ECHO OFF 

REM(((FORMAT.BAT))) 

REM PREVENTS USE OF 
FORMAT COMMAND LACK¬ 
ING DRIVE SPECIFICATION 
REM REQUIRES FORMAT.COM 
TO BE RENAMED AS 
FORMATTD.COM 
IF NOT '' %1 %2 %3 %4 %5 

%6 %7 %8 %9 

IF '' ="%1" ECHO DRIVE 

SPECIFICATION MISSING— 
PLEASE TRY AGAIN 

James M. Detmei 
Detmer Systems Co. 
New Canaan, CT 

The problem of the FORMAT program 
mentioned in "Disarming DOS Format" 
is troublesome. However, there is a 
more straightforward solution than the 
one the article proposes. Direct modifi¬ 
cation of operating software should al¬ 
ways be avoided. Those who live by the 
patch will surely die by it. 

Here is my solution to the problem. 
First, rename FORMAT.COM to some¬ 
thing you would not ordinarily use, 
such as FMT###.COM. Now create a 
batch file named FORMAT.BAT. It 
should contain only one line: FMT### 
A: /V. Now when you type FORMAT 
you will format a floppy on drive A:, 
but on an XT that is about all you use 
the FORMAT command for anyway. 

Daniel T. Sullivan 
Bolton, MA 


Technical Knockout 

1 looked and looked, but I couldn't find 
where you hid figure 1 in "3-D Graph¬ 
ics for the IBM PC" (Jay Mallin, May 
1984, page 36). When you find it, please 
send me a copy. 

Does Susan Glinert-Gole (sic) really 
spell her name the way it appears in 
"Name, Rank, and Serial Number" 
(May 1984, page 192)? 

Does Cole/Gole really want line 
430 of ROMREAD.BAS in this same ar¬ 
ticle to read .... ? The program 
runs much better if it's ..".. .. 

Does Scott McCann really want R1 
and R2 in figure 1 of "Using a Switch- 


Type Joystick on the IBM PC" (May 
1984, p. 195) to be 50K each? The cir¬ 
cuit works much better if they are 
100k (small k) each. 

And this is a "Tech" magazine? 

Bill Kiaengel Jr. 

Valley Stream, NY 

Point by point: 

1 . It wasn't there. I found it, and 
it's reproduced below. 

2. Nope. That one surprised us, too. 
G-C is making us pay for it, believe me. 

3. Our listings are reproduced di¬ 
rectly from letter-quality copies of the 
programs. The original definitely had a 
tilde that got lost in the reproduction 
and printing shuffle. We consider our re¬ 
production of listings to be the best any¬ 
where, but we are in the process of im¬ 
proving them for the sole purpose of 
eliminating this kind of problem. 

4. No. 100k is conect. We blew it. 
(We had several letters—some of which 
are published below—calling this enor 
to our attention. Thank you all.) 

5. Yes. Even our mistakes are 
technical. 

—WF 

Figure 1 for "3-D Graphics for the IBM 
PC": 


X 

y 

z 


In Search of the Lost 
Joystick 

1 read with interest "Switch-Type Joy¬ 
sticks on the PC" (Scott McCann, May 
1984, page 195). 1 have one comment 
and one question. First, the resistive val¬ 
ues shown in the schematic and men¬ 
tioned in the text should be lOOK ohm 
resistors. Second, I wrote to Fair Radio to 
obtain the joystick named in the article 
and received a catalogue that made no 
mention of this joystick. Does anybody 
know where I can buy a "professional" 
joystick with SPDT switches? 

William M. McDonald 
Salem, VA 

We did a little checking, and, sure 
enough, we can't find the joystick in 
question. However, professional-quality 
joysticks and other input devices are 
available from Measurement Systems, 
Inc., 121 Water Street, Norwalk, CT 
06854, 203-838-5561. Measurement Sys¬ 
tems was kind enough to send us one of 
the joysticks (model 570), and it is very 
fine indeed. It also costs $200. If you 


need serious, industrial-grade devices, 
see these folks. 

—WF 

In the article "Using a Switch-Type 
Joystick on the IBM PC," I believe the 
resistor values should be lOOK ohms 
each, for R1 and R2, if their parallel 
connection is to be 50K ohms as in¬ 
tended. From my quick analysis, the 
scheme should work as the author de¬ 
scribes with this correction. Please ad¬ 
vise if the error is mine, however. 

Your magazine offers a very good 
format, and 1 enjoy the explicit nature 
of the topics, which allow a reader to 
put the information to immediate use. 
Please continue the good work. 

David J. Anderson 
Council Bluffs, I A 


dBASE II Overkill 

As a subscriber to PC Tech Journal from 
the beginning, 1 have generally enjoyed 
your magazine very much. However, 1 
must protest about the contents of your 
June 1984 issue. 

1 realize that dBASE 11 is a very 
popular program on the IBM PC and 
that software written in dBASE II is 
used by a large number of people. I 
think that frequent articles on the pro¬ 
gram are quite justified. But an entire is¬ 
sue of a monthly magazine devoted al¬ 
most exclusively to one product! 

I work with a wide variety of appli¬ 
cations, including database, word pro¬ 
cessing, spreadsheet, graphics, and com¬ 
munications, on more than 60 micro¬ 
computers. I am responsible for finding 
the best software for each application 
and helping people use the software ef¬ 
fectively. I am interested in new tech¬ 
niques and products in all areas of mi¬ 
crocomputing. The people I work with 
do not have time or inclination to ex¬ 
plore these areas themselves. 

I look to publications like PC Tech 
Journal for help in discovering new 
hardware and software products, along 
with technical pointers that may help 
me in my work. It so happens that we 
do not use dBASE II, but even if we did, 

I would prefer articles on a variety of 
subjects. For me, the investment of time 
and money in your June issue had a 
0-percent return. 

Alan Dolgoff 
Microcomputer Manager 
Hambrecht & Quist 
San Francisco, CA 


cos i 

-sin i 

0 

sin i 

-cos i 

0 

0 

0 

1 


20 


PC Tech Journal 










LETTERS 


Pascal times more 

I read your review of the various Pascal 
compilers with great interest ("Pascal 
Times Four/' Jeff Duntemann and- 
Michael Bentley, July 1984, page 58). 
The parts dealing with Turbo Pascal 
were very fair, at least as amended with 
the material on version 2.0.1 would like 
to add a few comments. 

Not only does the compiler take 
you back to the editor upon detecting a 
compilation error—the same thing hap¬ 
pens on run-time errors as well. This is 
possible even when you have compiled 
to a disk file instead of to memory. If 
you've ever spent a day tracking down 
UCSD Pascal's cryptic "floating-point 
error" and "value range error" messages, 
you will appreciate the luxury of being 
directed immediately to the statement 
that is at fault. 

Turbo's habit of clearing the 
screen at the start of execution seems to 
be Borland's sole error of judgment. 

You can defeat it with the aid of the 
debugger, however. In all programs I 
have examined, there's an INT 10 (hex) 
located at 02FC in the code segment: 
change this to a pair of NOPs and the 
screen will not clear. Since I don't use 
Turbo on a PC clone, I don't know how 
many other INT 10s would have to be 
disabled to avoid crashing the system, 
but a little prowling around with the 
debugger should do the trick. Since 
these are .COM files, rather than .EXE 
ones, the debugger will not make any 
difficulties about writing the revised 
version back to the file. 

Turbo programs wipe out the tran¬ 
sient part of DOS, so after any program 
is run, COMMAND.COM must be re¬ 
loaded. As a result, the keyboard buffer 
is cleared, and programs cannot be re¬ 
run by means of F3. 

Turbo programs are compact as 
well as fast. The runoff program that 
typed this letter occupies a .COM file 
that is 16K bytes long. The same runoff 
program written in Microsoft's 
FORTRAN-77 results in an .EXE file 
that is 37K bytes long. 

Turbo's flash compiler gives you 
that same feeling of immediacy that is 
the sole redeeming feature of BASIC. 

The difference Turbo's quick turn¬ 
around makes in developing a compli¬ 
cated program has to be experienced to 
be believed. Of course, you're dealing 
with an infinitely better language than 
any BASIC known to me—but that 
should not need to be said. 

Thomas W. Parsons 
Brooklyn, NY 


Your recent article on the various 
Pascals was very good. However, as an 
owner of Microsoft Pascal I would like 
to make a few points. I agree that the 
documentation is horrible, but there are 
three areas that seem to have been over¬ 
looked in the article. These are the 
metacommands (specifically Snofloat- 
calls/Sfloatcalls), the null object files 
(nulf.obj, nule6.obj, and nulr7.obj), and 
precision control. 

First, the "floatcalls" metacom¬ 
mands specify how real math operations 
are done. The Sfloatcalls command is 
faster but requires more code. Second, 
the null object files replace potentially 
unused units in the code, such as the 
file system, error handling, or real oper¬ 
ations, respectively. Third, the preci¬ 
sion-control procedures (MPSRQQ, 
MPBRQQ, MPDRQQ) set the maximum 
precision for real numbers (23 to 64 
bits). Below is a table of the TRIGTEST 
benchmarks with various options (using 
MS-Pascal 3.13). 

trigtest size: 31068 

(Sfloatcalls) 0:07.0 

trigtest size: 30212 

(Sfloatcalls,nule6) 0:07.0 
trigtest size: 31756 

(Sfloatcalls, 0:04.9 

mpsrqq) 

As you can see, with the minimum real 
precision the benchmark required a sig¬ 
nificantly smaller amount of time. 

Peter A. Mead 
Greenwich, CT 

Since I expect to buy a Pascal compiler 
soon, I was especially interested in read¬ 
ing "Pasdal Times Four." I had already 
eliminated IBM's release 1.0 compiler 
from consideration, but I want to find 
out more about its release 2.0, men¬ 
tioned in "Tech Releases" (July 1984, 
page 192). IBM's spec sheet sounds al¬ 
most identical to the Microsoft release 
3.2 covered by your review. Two ques¬ 
tions come to mind: 

What Microsoft release number 
does the IBM release 2.0 correspond to? 

Did IBM use Microsoft's documen¬ 
tation or has it written its own? Is it any 
better than Microsoft's? 

Thanks for a well-written article 
that helps to sort out the differences be¬ 
tween these compilers. 

Bill Tinsley 
Iowa City, lA 

There is no direct connection between 
IBM Pascal V2.0 and any Microsoft re¬ 
lease of MS Pascal. However, we do 


know that MS Pascal V3.2 is a later 
(and more powerful) release of the com¬ 
piler. Microsoft's manual set for V3.2 is 
a daunting document, hut it is still miles 
ahead of either IBM V2.0 or any pre¬ 
vious Microsoft document. I know of no 
good reason to buy IBM Pascal over MS 
Pascal—why place yet another layer of 
bureaucracy between yourself and the 
manufacxmer of the product? It is still 
unclear to me what IBM could add to 
MS Pascal except confusion. 

MS Pascal is nearly impenetrable to 
the Pascal newcomer. Although you 
may want it eventually to compile your 
magnum opus, I recommend picking up 
Turbo Pflscul V2.0 to cut your teeth on. 
Now that it has full heap management, 
graphics, and overlays, Turbo V2.0 is 
shoulder-to-shoulder with the big guns. 

—Jeff Duntemarm 

In Defense of Proloks 

Mitchell Schoenbrum's letter concern¬ 
ing Prolok software security diskettes 
("Proloks and Panaceas," June 1984, 
page 16) was somewhat bittersweet. Al¬ 
though he was highly complimentary, 
as was the author of "New Weapons for 
Fighting Software Piracy" (Werner L. 
Frank, February 1984, page 71), we are 
afraid Mr. Schoenbrum is laboring un¬ 
der a few misconceptions. 

He addressed the level of security 
as his primary concern. We are realistic 
enough to agree that no software protec¬ 
tion scheme is totally impenetrable. But 
then neither is the lock on your front 
door. The understood purpose is to keep 
the majority of offenders out. Prolok op¬ 
erates on this premise, and we have 
positioned it in the marketplace as an 
easily installed, low-cost, highly effec¬ 
tive (probably 99 percent or better) 
means of software protection. 

The friend Mr. Schoenbrum refers 
to undoubtedly was using one of our 
earlier versions. Our latest version of¬ 
fers six times the security level, plus we 
are constantly upgrading our product. 
Currently, there isn't a copy utility 
available that can penetrate our latest 
Prolok product, and it is impervious to 
standard debug equipment. 

Again, we do not promise a panacea 
to software piracy. We simply offer the 
most effective, cost-efficient protection 
against the majority of offenders. 

Michael H. DarUng 
Vice president, sales and marketing 
Vault Corporation 
Westlake Village, CA 


September 1984 


21 











Get yourself a 



This little critter comes with speciaRy-designed software 
that fRes through the maze of keystrokes on the most 
popular business programs faster than you 
can say “cheese.” 

Miaosoft* Mouse puts the power to run 
Multiplan* Lotus 1'2'3,'“ VisiCalc 
WordStar* in the palm 
of your hand. CRck 
the left button on 
the mouse, a custom 
menu appears. In 
EngRsh, not hierogly- 
ahics. CRck the right 
Dutton and execute your 

command: move text or data, edit, format, print. AU at 
bRnding speed without touching the keyboard. 

It also lets you create your own menus for editing and 
formatting existing appRcation programs. So people can 
learn programs quicker and do more productive work as 
they learn. 

The miyitiest mouse. 


Microsoft Mouse runs circles around other mice. 

It is the high performance mouse for the IBM* PC and 
PC XT From the company known for high 



trained mouse. 




performance software. Microsoft BASIC is the language 
spoken by nine out of ten microcomputers worldwide. 

MICROSOFT Our MS'DOS operating system tells 

The High Performance Software yOUt IBM PC KoW tO think. 

So don’t monkey around with any other mouse. Call 

800'426'9400 (in^shington State call 206'828'8088) 

for the name of your nearest Microsoft dealer. Then 
go with Microsoft Mouse. 

The mouse that soars. 


Microsoft and Muldplan are registered trademarks and MS is a trademark of Microsoft Corporation. 
Lotus 1-2-3 is a trademark of Lotus Development Corporation. VisiCalc 
is a registered trademark of VisiCorp. WordStar is a registered trademark of MicroPro. 

IBM is a registered trademark of International Business Machines Qirporation. 


Sol Libes 



RANDOM RUMORS 
AND GOSSIP 
Microsoft President Bill 
Gates recently expressed the 
view that IBM has "a year 
or two to go" as the prevail¬ 
ing microcomputer standard 
before 80286 technology 
takes over. IBM is expected 
to announce its 80286-based 
system either this month or 
next with initial deliveries 
expected at year's end. This 
should be an expansion of 
the PC family and not a re¬ 
placement for any of the 
family members. IBM is 
also rumored to be develop¬ 
ing a speedy—300 lines per 
minute—new printer for the 
PC. Compaq introduced 
in July a desktop hard disk 
system using the 8086 micro¬ 
processor and dual-speed 
clocking (IBM standard— 
4.77Mhz and a higher 
speed—8Mhz). At least two 
other companies are already 
showing such products. The 
machine comes equipped 
with a built-in tape back-up 
system for the hard disk. 

IBM provides no such tape 
back-up for the XT; about 27 
disks are needed to back-up 
the hard disk. Sharp Elec¬ 
tronics is reportedly al¬ 
ready showing to several 
computer manufacturers an 
electroluminescent display 
panel of 80 characters by 25 
lines; the display has a thick¬ 
ness of only 1.5 inches. 
Hewlett-Packard is the 
first company to introduce a 
product that uses it. IBM is 
developing a 3.5-inch hard 
disk drive that stores 20 
Mbytes; the company is ex¬ 
pected to use these new "mi¬ 
cro-Winchesters" in systems 
that will be introduced next 
year and to offer them to 
other computer makers. 



Eagle Computer, a mak¬ 
er of IBM-PC compatibles, is 
reported to be having prob¬ 
lems with cash flow and 
poor sales and the company 
is considering some layoffs. 
IBM's most recent price re¬ 
ductions may exacerbate Ea¬ 
gle's problems. Digital 
Research is expected soon 
to release Crystal, a software 
developer toolkit containing 
a large collection of routines 
that can be merged and inte¬ 
grated into programs to re¬ 
duce development time and 
to provide features such as 
menus, graphics, and multi¬ 
tasking. Several vertical and 
scientific application soft¬ 
ware packages are soon to be 
announced by IBM. Expect 
a big emphasis on education¬ 


al software. IBM dealers re¬ 
portedly have been applying 
increasing pressure on the 
company to allow them to 
sell the 3270-PC, which cur¬ 
rently is available only via 
IBM's own sales force. Re¬ 
ports now are circulating 
that IBM is seriously consid¬ 
ering this for selected busi¬ 
ness-oriented dealers. IBM is 
expected to double the num¬ 
ber of retail outlets (4,000 by 
1985) for its personal com¬ 
puter products within the 
coming year. Most of this 
new increase is expected to 
come from office equipment 
dealers. With PC/r sales not 
measuring up to expecta¬ 
tions, rumors are rampant 
that IBM is seriously con¬ 
sidering distribution of the /r 
through mass market outlets. 


ON THE PC 

IBM is reportedly beta test¬ 
ing a multitasking version of 
MS-DOS for its forthcoming 
80286-based system. Howev¬ 
er, it should be noted that 
Digital Research, Inc. (DRI) 
has been delivering a multi¬ 
processing DOS with PC- 
DOS compatibility since 
July. That product. Concur¬ 
rent PC-DOS, will run up to 
256 PC-DOS or CP/M tasks 
concurrently on a standard 
PC; four of these tasks can 
be viewed on the display. 
Concurrent PC-DOS also has 
a true windowing system 
and communications support. 

DRI has also introduced a 
plug-in board for the PC that 
turns Concurrent PC-DOS 
into a multi-user system that 
will support up to four users. 
The board and associated 
software are called StarLink. 
It thus appears that DRI has 
about a six- to nine-month 
lead over IBM's introduction 
of a multi-user PC system, 
although that lead may suf¬ 
fer from Concurrent PC- 
DOS's lack of full PC-DOS 
2.0 compatibility. 


^ _ 

MULTIPROCESSING 


Even with the new base 
price of $999, however, the 
machine may be too expen¬ 
sive for this channel. Finally, 
rumors of an IBM lap-size 
portable keep popping up. 
The latest comes from Eu¬ 
rope, where IBM is said to be 
testing an 8088-based ma¬ 
chine made by Matsushi¬ 
ta Electric Co., Ltd. 
with bubble memory, ROM 
software, a display with 8 
lines by 80 characters, and a 
disk drive. 


24 


PC Tech Journal 


ILLUSTRATION • DAVID POVILAITIS 

































ILLUSTRATION • KEVIN McPHEE 



THE TECH JOURNAL 

NEWSUNE 

News, views, and gossip on the IBM 
and IBM-like marketplace 


IBM NETWORKING 

IBM will probably intro¬ 
duce an interim LAN system 
from an outside vendor to 
tide it over until it can intro¬ 
duce its own LAN in 1986 
or 1987. The company is 
known to be evaluating LAN 
systems from Sytek, 3Com, 
and Ungermann-Bass for pos¬ 
sible adoption. IBM has 
named six of the seven Bell 
operating companies as dis¬ 
tributors and installers of its 
LAN cabling system. 

IBM is known to be work¬ 
ing with Texas Instruments 
(TI) on the development of 
ICs for its LAN project. TI is 
believed to have run into de¬ 
velopment problems, which 
could be causing IBM to 
reassess its fundamental 
LAN architecture. Develop¬ 
ment of a networking system 
to interconnect a large num¬ 
ber of varied devices that 
will work reliably and easily 
is a mammoth task, and IBM 
appears to be taking the time 
to do it properly. Further, 
the demand for LAN sys¬ 
tems appears to be develop¬ 
ing slowly; IBM really may 
not be under a great deal of 
pressure to get its system 
out. The company is already 


known to have wired 10 of 
its buildings in Rye Brook, 
New York, with 3.5 million 
feet of cable connecting 
2,800 devices, and it is wir¬ 
ing 11 additional buildings. 
Thus, IBM is expected to do 
intensive testing of its LAN 
system before it is released. 
This will take time. 



CUSTOMS SEIZES 
PC COPIES 

The U.S. Customs service in 
Seattle recently seized a large 
number of allegedly counter¬ 
feit copies of the IBM PC, af¬ 
ter IBM registered its copy¬ 
right with customs and 
pointed out the copies. IBM 
thus is following in Apple's 
footsteps in attempting to 
protect its copyrights. 

A number of Far Eastern 
suppliers have been shipping 
copies of the Apple II into 
the United States without 
the copyrighted ROMs, and 
Apple has requested that 
U.S. Customs take action 
against these companies. 
Apple has also encountered a 
similar problem in Canada, 
where the government has 
been less aggressive in stop¬ 
ping illegal importing of 
Apple copies. A large num¬ 


ber of these copies make 
their way into the U.S. from 
Canada. The likelihood is 
that the same will happen 
with IBM PC copies. 

IBM may be in for more 
problems as a software house 
in Norwood, Massachusetts, 
called Phoenix Software As¬ 
sociates has announced the 
availability of a BIOS ROM 
that is functionally identical 
to the copyrighted IBM BIOS 
ROM and yet does not in¬ 
fringe on the IBM copyright. 
A license for the Phoenix 
ROM and Phoenix version of 
PC-DOS 2.1 is only $290,000. 
Several Far East vendors have 
already taken out licenses, 
and PC-compatibles are ex¬ 
pected to be introduced 
shortly from more than a 
dozen Taiwanese and Japa¬ 
nese manufacturers. 

At the same time, IBM 
has added a ROM BIOS up¬ 
grade to its price list. Al¬ 
though the chip contains the 
entire BIOS and thus would 
seem fair game for the man¬ 
ufacturers of clones, IBM is 
protecting itself by requiring 
that purchasers exchange 
their old ROM for the new 
one. The new ROM, besides 
incorporating a number of 
fixes for known bugs, also 
includes the ROM scan fea¬ 
ture that is needed to operate 
the IBM Cluster or to allow 
a boot from a hard disk. 



IBM PRODUCT 
CENTERS — 

GAIN OR LOSS? 

IBM recently denied rumors 
that its chain of 80 Product 
Centers was operating at a 
loss and that it does not plan 
to open any more centers. In¬ 
dustry pundits expect IBM to 


continue opening Product 
Centers and possibly to have 
as many as 100 in operation 
by the end of the year. 

Rumors have been circu¬ 
lating in the industry that 
IBM's Product Centers were 
having problems with high 
labor costs, high overhead, 
and low sales volume as a re¬ 
sult of high prices and lim¬ 
ited product selection. Future 
Computing recently reported 
that the Product Centers ac¬ 
count for about 5 percent of 
IBM's PC sales, whereas in¬ 
dependent stores and chains 
account for 51 percent of 
sales. The remaining sales 
are via VARs, VADs, and 
IBM's sales force. Previous 
estimates had IBM selling as 
much as 65 percent through 
its direct channels. 



RANDOM NEWS BITS 
Intel has given Oki Elec¬ 
tronic Industry of 

Tokyo a license to make a 
CMOS version of the 8088 
microprocessor used in the 
IBM PC. Fiarris is already 
making a CMOS version of 
the 8086, which is used in 
the HP-110 portable, and also 
will soon be making an 8088 
CMOS chip. Dataquest, a 
market research outfit, re¬ 
ports that notebook-size com¬ 
puters made up 3 percent of 
systems sold last year, and it 
predicts sales of such com¬ 
puters this year will increase 
to 7 percent and by 1988 
will rise to 30 percent. Sony 
has introduced a color moni¬ 
tor, using its Trinitron CRT, 
that it claims will display 
1,280 by 1,024 pixels. 


September i984 


25 












IBM PC USERS 

'leamMa 
and perf( 


Let the TeamMate 1000 Series of Winchester and Kodak 3.3MB floppy subsystems set 
productivityrecords for your IBM PC or compatible. Taking only minutes to install, 
weVe got all the competition beat. TeamMate requires no special software or format¬ 
ting diskettes. All you need is DOS 2.0! j 

We have a variety of configurations to fill a variety of needs. Like the 1 

TeamMate 1110 add-in 10MB Winchester, with power consump- : ' 

tion so low it can be safely installed in even fully configured PCs. 

Or try the TeamMate 1103 KODAK 3.3MB floppy add-in sub¬ 
system. Also software transparent, it gives you 2.78MB of 
rugged floppy storage- perfect for Winchester backup or 
as a low cost alternative to Winchester disks. Or get 
the advantages of both with our TeamMate 1213 
Winchester/Kodak floppy add-on combination. 

All at record prices. 

Even TeamMate’s customer support is fast. 

Should your subsystem need any service 
during the first 3 months of the ^month 
warranty period, your dealer will be 
shipped a swapout unit within 
24 hours! 

Ask for TeamMate IBM and 
Apple subsystems at your local 
computer dealer. Or call us at 

(408) 496-0434. 


TeamMate by Data Technology 

2775 Northwestern Parkway 
Santa Clara, CA 95051 
TEL: (408) 496-0434 
TWX: 910-338-2044 





















COHERENT™ IS SUPERIOR TO UNIX* 
AND irs AVAILABLE TODAY 
ON THE IBM PC. 


Mark Williams Company hasn’t just taken a mini-computer 
operating system, like UNIX, and ported it to the PC. We 
wrote COHERENT ourselves. We were able to bring UNIX 
capability to the PC with the PC in mind, making it the most 
efficient personal computer work station available at an 
unbelievable price. 

For the first time you get a multi-user, multitasking operating 
system on your IBM PC. Because COHERENT is UNIX- 
compatible, UNIX software will run on the PC under 
COHERENT. 

The software system includes a C-compiler and over 100 utili¬ 
ties, all for $500. Similar environments cost thousands more. 

COHERENT on the IBM PC requires a hard disk and 256K 
memory. It’s available on the IBM XT, and Tecmar, Davong 
and Corvus hard disks. 

Available now. For additional information, call or write, 

Mark Williams Company 

1430 West Wrightwood, Chicago, Illinois 60614 

312/472-6659 

CIRCLE NO. 164 ON READER SERVICE CARD 



Mark 

Williams 

Company 


COHERENT is a trademark of Mark Williams Company. 
*UNIX is as trademark of Bell Laboratories. 


CIRCLE NO. 186 ON READER SERVICE CARD 


i 






V ,,„vOff „..vo-> 

«ll'®' =^«» S''* 00« 

, 00»'fc^S5* ’'<'“S” 

*>' ^ ViSS 


iace- 

'N»''*V ,,0llS-- .ase4 













FOR THE IBM® PC, IBM® XT, COMPAQ.™ i 

CORONA.™ CORONA™ PORTABLE. LEADING EDGE,® EAGLE PC.-" TAVA.™ f 

_ We’ve turned 

hard disk storage into 
an affordable reality. 



^Miovable 
1 disk system. 
Allows easy primary 
or backup storage 
through inter- / 
changeable disks. 


$1895 



Half-height streamer 
tape system. Ideal data 
backup system for 
large-scale 
storage. 


$1095 


Half-height 10 
Mbyte internal hard 
disk system. 


$895 


Half-height external 
hard disk system (10, 
20, or 33 Mbyte). Also 
accommodates 
half-height backup 
system. 

$ 1295-$2295 


Kamerman Labs combines the speed and storage capacity 
of hard disk technology with prices you can’t afford to pass up. 


A dramatic leap in performance for 
your personal computer. 

Even the smallest Kamerman Labs 
hard disk unit gives you 30 times the 
storage capacity of a typical floppy 
disk. Sophisticated business and pro¬ 
fessional data storage requirements 
can now be handled with ease. 

Better yet, you can access data up 
to 10 times faster than with floppies. 
Spend more time working and less 
time waiting. 

And it’s easy to use. Kamerman 
Labs lets you boot directly off the hard 

IBM is a registered trademark of International Business 
Machines Corp. 

Compaq is a trademark of Compaq Computer Corp. 

Corona is a trademark of Corona Data Systems. 


disk, just like the IBM XT. 

A complete backup solution. 

Backup of hard disk data is a critical 
requirement in many microcomputer 
applications, so Kamerman Labs 
offers several reliable and cost- 
effective backup devices that are fully 
compatible with our hard disk units. 

Lower prices than ever. 

Because you deal directly with 
Kamerman Labs, we offer you re¬ 
markably low prices. Finally, you can 
realize the full benefits of hard disk 

Leading Edge is a registered trademark of Leading Edge 
Products, inc. 

Eagle is a registered trademark of Eagle Computers. 

TAVA is a trademark of TAVA Corporation. 


technology without the excessive 
costs. 

Tested and formatted. 

All Kamerman Labs systems have 
been thoroughly tested and formatted 
before delivery. 

Full warranty and technical 
support. 

Kamerman Labs backs all its prod¬ 
ucts with a full one-year warranty on 
both parts and labor. Plus you get 
prompt technical support through a 
toll-free hotline number. 

To order, call toll-free 
800 - 522 - 2237 . 

In Oregon, Hawaii and Alaska call 

503 - 626 - 6877 . 



Mr 


i^dmerman 

Labs 


All Kamerman Labs units come in either internal or external 
configurations. 


8054 S.W. Nimbus, Bldg. 6, Beaverton, Or 97005 

Phone 503-626-6877 


CIRCLE NO. 101 ON READER SERVICE CARD 







Metrabyte's inexpensive 
DASCON-1 moves 
analog/digital numbers in 
and out of the PC with 
the greatest of ease. 


O ne of the best features of a 
small system is its ability to 
analyze user data. The data, 
entered at the keyboard, 
can be listed, plotted, and used to 
control external devices. With an 
analog/digital I/O expansion board 
like DASCON-1 from Metrabyte, 
the data can be entered automati¬ 
cally in either analog or digital 
form, and the above-mentioned 
functions can be performed with 
very little user intervention. 

DASCON-1 is Metrabyte's solu¬ 
tion for getting analog or digital in¬ 
formation into and out of an IBM 
PC. It allows high-precision data ac¬ 
quisition with a throughput of 16 
channels per second. 

Metrabyte's expansion board 
not only has obvious industrial and 
scientific applications but also has 
many uses for the small-business or 
home computer owner. Applications 
can range from power-line monitor¬ 
ing to long-term temperature mea¬ 
surements for home heating man¬ 
agement. For example, by wiring a 
solar cell to one A/D input and a 
temperature probe to another, the 


converter (12 bits plus a sign bit) 
boasting a resolution of .0005 volts 
while configured in the differential 
mode; a clock/calendar, with bat¬ 
tery back-up, which provides timing 
references at 1 second, 1 minute, or 
1 hour for data acquisition and 
which can be accessed to update the 
date and time of the PC; 12 bits of 
digital I/O (through two ports), 
which are TTL-compatible,* internal 
voltage and current references,- two 
(R.T.D.) platinum resistance ther¬ 
mometer interfaces for temperature 
readings between —200 deg. C and 
+ 650 deg. C; two optional 12-bit 
D/A outputs; optional instrumenta¬ 
tion amplifiers for two of the A/D 
converters; a system manual; and 
software programs. Photos 1, 2, and 
3 show three of the boards that 
make up DASCON-1. 

The DASCON-1 manual is di¬ 
vided into nine well-written and de¬ 
tailed chapters. Chapter topics in¬ 
clude an introduction, a guide to in¬ 
stallation, how to program DAS¬ 
CON-1 (more than 20 pages of ex¬ 
amples and applications), how to set 
and read the on-board clock, how to 


Ra Ri chards Caiverter 

F R O M A T O D 


WILUAM H. MURRAY 


user could investigate the effect of 
incident sunlight on greenhouse 
temperatures. Using the software 
provided with DASCON-1, this data 
can be saved and plotted at a later 
date, or it can be plotted as it is re¬ 
ceived by the various inputs. 

The DASCON-1 package con¬ 
tains a four-channel, dual-slope A/D 

William H. Munay teaches computer science 
at Broome Community College in 
Binghamton, NY. He is a contributing editor. 


use the graphics package, lineariza¬ 
tion of data, special applications, ac¬ 
cessories (to make life easier), and a 
description of the calibration pro¬ 
gram and test information. Three 
appendices describe the various con¬ 
nections to DASCON-1; input and 
output data ranges, accuracy, and 
precision; and user-serviceable parts. 

Refer to table 1 for details on 
DASCON-1's electrical and conver¬ 
sion specifications. 


30 


PC Tech Journal 















Siiii 













































DASCON'l 



Photo 1: A screw terminal 
hoard that makes all analog and 
digital inputs and outputs avail¬ 
able via miniature screw termi¬ 
nals. All 12 digital I/O lines are 
monitored hy LEDs. 


Experimenting with 

DASCON-1 

One of the easiest techniques for re¬ 
ceiving from or sending data to 
DASCON-1 is to use the software 
included with the board. Eleven dif¬ 
ferent modes allow the user great 
flexibility in programming in the 
BASIC language. Table 2 gives a 
short description of each mode. The 
various modes are accessed from 
BASIC with a CALL statement and 
parameters that are to be passed: 

CALL DASCONl (MODE, 

CHANNEL, DATA 0, DATA 1, 

BASE ADDRESS) 

As an example of how to access 
data from channels 0 and 1 on the 
A/D converter, consider the pro¬ 
gram in listing 1. Mode 0 is a free 
scan mode that samples all four 
A/D channels. Lines 30-80 set aside 


part of the memory that is reserved 
for BASIC in order to BLOAD DAS¬ 
CONl.BIN. Actually, this program 
can reside outside of the BASIC seg¬ 
ment. Lines 90-150 initialize DAS¬ 
CON-1 for mode 0 operation. This 
only needs to be done once per pro¬ 
gram, unless modes are changed. 
Line 160 is the actual CALL state¬ 
ment to DASCON-1. Data for chan¬ 
nels 0 and 1 is returned to DIO (0)% 
and DIO(I)% in terms of bits. In 
other words, +/—4095 bits corre¬ 
spond to +/ —2.0475 volts. Lines 
170-180 convert the bit readings to 
voltages, and line 190 prints the 
data to the screen. 

Listing 2 is a modification of 
the original program and will per¬ 
mit the user to receive data upon an 
interrupt from the clock. In this 
program, mode 3 is originally called 
to start the interrupt process. Once 


32 


PC Tech Journal 






































































Your IBM PC Or XT Graphics Are Only 
As Good As What's Under The Hood. 


Get Smooth Clean Performance With Graphix Plus 11™. 
Single Board Support Of Both CoXox And Monochrome Display. 


W hen it comes to color/graphics adapter boards, your 
IBM Personal Computer—and you—deserve only the 
best. That’s why Graphbc Plus II gives you 
outstanding graphics... and a whole lot 
more. With Graphix Plus II, you’ll get 
50% faster, flicker-free scrolling over 
IBM’s color/graphics board. And, the 
Graphix Plus II is the only product on 
the market which provides dual monitor 
support for both RGB color and 
monochrome graphics on a single board. 

It gives you full screen (640 x 352) 
monochrome graphics and high 
resolution color graphics with the appropriate 
software. When two monitors are used, Graphix 
Plus II automatically shifts to the appropriate screen. 

Luxury Items Are Standard Equipment 

With the Graphix Plus II, you’ll be glad to know extra 
conveniences come standard. For example, you get a 
parallel printer port which allows you to hook up any IBM 
compatible printer or SASI compatible hard disk controller. 
Our ‘PC Accelerator’™ software is included which gives you 


the use of two RAM disks and a print buffer. Plus, you 
can access the screen RAM with absolutely no “snow” or 
flashing. Graphbc Plus II also provides 
—- true gray scale display on composite 

video monitors, a light pen interface, 
32K display RAM (text and graphics 
modes), compatibility with Lotus 
1-2-3™ and other popular software 
packc^es. And much more. A battery 
operated clock calendar is available as 
an option. 

Puts You In The Driver's Seat 

Graphbc Plus II fits easily in any 
expansion slot inside your PC. And when you power up, 
you’ll see the same high-powered quality you’ve come to 
expect from your machine. Incredibly smooth, versatile 
performance. From start to finish. 

Graphbc Plus II. So good, so reasonably priced, you might 
say ...we’ve outclassed the competition. See your local 
dealer for all the details. Or call or write STB Systems, 

Inc., 601 North Glenville, Richardson, Texas 75081 
(214)234-8750. 




STB Systems, Inc. 


IBM PC, XT are registered trademarks of International Business Machines Corporation. 
Lotus 1-2-3 is a registered trademark of Lotus Development Corporation. 


. 1.. . ■ r. i 

CIRCLE NO. 199 ON READER SERVICE CARD 

Expandins Microcomputing 

PC Accelerator is a registered trademark of ResiCorp. 







DASCON-1 


Photo 2: An electromechanical 
relay hoard that contains 8 relays 
rated at 120 volts RMS at 3 amps 
resistive load, for controlling 
power loads. 


called, the system will continue to 
generate interrupts until reset (a call 
to mode 4). A call to mode 6 (lines 
170-200) reports the readings from 
each interrupt. This program was 
written to sample data on channel 0 
once a second (the interrupt jumper 
was set to one second) and print 
data continuously to the screen. 

Listing 3 is an extension of list¬ 
ing 2 that permits saving data in a 
file on the B: drive called PDATA. 
The manual is very detailed on how 
file access can be made. The first 
data entry (line 170) defines how 

many data points are to 
be recorded (the num¬ 
ber of data points 
= 31 — 1 for this 
example). Line 180 
specifies a plotting 
format that will be 
described later. 

To test DAS- 
CON-Ts tempera¬ 
ture probe, 1 moni¬ 
tored the tempera¬ 
ture of a cup of cof¬ 
fee for 30 minutes. 
Data were recorded at 
1-minute intervals. 


saved on a disk, and plotted using 
the graphics software included with 
DASCON-1. The temperature read¬ 
ings that were being reported using 
DASCON-1 were found to track ac¬ 
curately when checked against a 
mercury laboratory thermometer. 
The program shown in listing 3 re¬ 
corded the actual data into the 
PDATA file. Figure 1 shows a plot 
of the data. 

Several nice features about 
DASCON-Ts graphics software 
package deserve special mention: up 
to 15 different data files can be plot¬ 
ted on the same graph; data entered 
from the keyboard can be plotted; 
by using a special program the X or 
Y axis can be set to any size; data 
can be plotted as they are received; 
and data points can be plotted by 
themselves or a line can be drawn 
between successive points. 

For another test of DASCON-Ts 
capabilities, 1 used Titchener Hall, 
one of the buildings at the commu¬ 
nity college where I teach, which 
won the award for having the most 
poorly designed air-conditioning sys¬ 
tem in the state of New York. Part 
of the problem is that on sunny 



Photo 3: A sohd-state I/O 
hoard that uses up to 8 modules 
of the OPTO‘22 type. The mod¬ 
ules are selected to meet the 
user's specific I/O requirements. 



34 


PC Tech Journal 





















































FORGET 

EVERYTHING YOU 
THOUGHT 
YOU KNEW ABOUT 
PROGRAMMING 
IN BASIC 



INTRODUCING 

BetletBASIC 


“It combines the best points of interpreted 
BASIC, Pascal, Forth, & Assembler. " 

...It’s thefirst piece ofsoftware Id spend my 
own money on’.’ 

Susan Glinert-Cole 
Technical Editor, 

PC Tech Journal 

Dramatically improve your 
productivity with BetterBASICr 

Introducing a new, breakthrough programming system called BetterBASIC : At last, the 
structure and functionality of advanced languages such as Pascal and “C” have been 
combined with the friendliness and ease of use of BASIC. BetterBASIC” will 
dramatically increase the productivity of both new and experienced programmers. 
BetterBASIC” is also a great Teaching Language. 

Speed. Sieve of Erastosthenes Benchmark: Support of large memory (to 640K). 

-BetterBASIC: 31.9 seconds. Built-in WINDOWS support! 

—IBM PC BASIC: 191.1 seconds. 





BetterBASIC' offers: 


□ Extensibility (Make your own BASIC!!) 

□ Program Block Structures. 

□ User defined Procedures and Functions. 

□ Local and Global Variables. 

□ Shared Variables. 

□ Recursion. 

□ Argument type validation. 

□ Optional arguments. 

□ Arguments passed by-value or by¬ 
address. 

□ Separately compiled program Modules. 


□ Simple interface to Assembly Language 
Procedures. 

□ Support for OEM hardware through 
extensibility. 

□ Useful set of Data Types: 

—Byte, Integer. 

—Real (Variable precision BCD) 

Ideal for business math. 

—String (up to 32768 characters). 
—Record Variables & Structures. 

—N-dimensional Arrays of any type. 
—Arrays of Arrays. 

—Pointer (of any type). 


General Information: 


□ Interactive programming language based 
on an incremental compiler. 

□ Syntax checked immediately on entry, 
with concise error reporting. 


□ Comprehensive 580 page manual. 

□ 8087 MATH support. 

□ IBM PC, IBM PC/XT or compatible. 


□ Built-in Screen Editor allows on-line 
editing. 


□ PC/DOS 1.1,2.0,2.1. 

□ 192K to 640K memory. 


□ Built-in Linker for separately compiled 
program Modules. 

□ Built-in Cross Reference Lister 


□ Usable on plain MS-DOS machines with reduced 
functionality. 

(No Editor, Graphics or Windows) 



We are so sure you will like 
BetterBASIC, we will give you a 
30-day money-back guarantee. Order 
BetterBASIC now! 

PRICE $199.00 
8087 MODULE $99.00 


Not convinced? Then try the 
BetterBASIC Sample and you will 
find that BetterBASIC is truly a 
major breakthrough in computer 
programming. 

SAMPLE DISK: $10.00 



You can find BetterBASIC by calling us at 617 235-0729 

Master Charge, Visa, RQ, Checks, Money Orders, and C.O.D. accepted. 

BetterBASIC is a trademark of Summit 
Software Technology, Inc. 

- , I Til IBM PC. IBM PC/XT and PC/DOS are 

Summit Software Technology mo 

MS-DOS is a trademark of Microsoft Corp. 

RQ BOX 99, BABSON PARK, WELLESLEY MA 02157 


CIRCLE NO. 177 ON READER SERVICE CARD 







DASCON-1 


O ne of the easiest 
techniques foT re¬ 
ceiving from or 
sending data to DASCON-1 
is to use the software in¬ 
cluded with the hoard. 


[ — 


Table 1: DASCON-1 Specifications 

Power Consumption 


"F 5 volt supply 

450mA typical/600mA maximum 

volt supply 

8mA typical/15mA maximum 

12 volt supply 

70mA typical/lOOmA maximum 

—12 volt supply 

60mA typical/100mA maximum 

Analog Input 

Resolution 

12 bits plus sign 

Accuracy 

.01% of reading +/— bit 

Full Scale 

“f /-2.0475 volts 

Polarity 

automatic 

Zero 

automatic 

Overvoltage 

continuous single channel to 120 volts R.M.S. 

Configuration 

differential 

Common Mode 

+/— 2 volt minimum 

Comiuon Mode Reject 

60 db min., 70 db typical 

Input current 

InA max at 25 deg. C 

Input filter 

Switchable on each channel 30 db atten. 
at 60 Hz. 

Temperature coefficient 

Gain or full scale ~'25ppm/deg. C max 

Type 

Integrating dual slope 

Conversion Rate 

30 conversions/sec. min (4 channels) 

Digital I/O 

• Outp^ (low volt) 

0.45 volt max at Isink = 1.7mA (1 standard 

TTLload) 

Output (high volt) 

2.4 volts minimum at Isource = 200 uA 

: Darlington drivig 

4mA max, 1mA min with Rext —750 ohm 

Input low voltage 

0.8 volt max,—0.5 volt min 

Input high voltage 

2.0 volt min, 5 volt max 

Input current 

4-/— 10 uA max 

Voltage and Current Sources 

Voltage sources (2) 

+/— 6.8 volt at 5 mA inax 

Clock 

Format 

24 hour with leap year 

Hold up time 

2 months at 25 deg. C 

Battery charge 

24 hours max. 

Stability 

2 sec/month typical 

: Output pulses 

1024 Hz, 1 second, 1 minpte, 1 hour 


days the greenhouse effect is respon¬ 
sible for increasing the temperature 
on one side of the building and not 
the other. 

One possible solution would be 
to monitor the amount of sunlight 
on one side of the building and use 
a zoned heating/cooling system to 
start the air conditioning on that 
side only. This would involve read¬ 
ing in an analog voltage from a solar 
cell, processing the information, and 
making a digital decision about 
whether or not to turn on the air 
conditioning system. DASCON-1 


could be used to input the analog 
voltage to the PC and output the 
digital decision to a relay. 

Listing 4 shows the modifica¬ 
tion to listing 1 that is required to 
produce this interface. The solar 
cell was wired to analog input chan¬ 
nel 0 and read with the CALL in 
line 160. If the converted analog 
voltage is over 500 (in binary form) 
then line 170 will set up DIO%(0) 
for a digital output of 1 for ON or 0 
for OFF. Digital outputs can be 
achieved by CALLing mode 9. 

This program continuously 


38 


PC Tech Journal 


















BEUfSOR HAS CHANGED THE 
WAY PROGRAMMERS WORK: 


PASCAL 




COMPUTER AIDED PROGRAMMING 


The Bellesoft Entry System for Programs (ES/P) has changed 
the way programmers will work in the future by putting computer 
aided programming (CAP) at their fingertips. 

What word-processing programs did for writing text, Bellesoft 
has now done for generating programs: putting the computer to 
work to create a whole new way of writing software. 

Bellesoft’s ES/P speeds up software development by up to 
50%, produces better programs and reduces debugging time. ES/P 
improves programming in five significant ways: 

1. On-Line Syntax Checking. ES/P is more than a very smart editor: 
it automatically checks your program for correct syntax as you enter 
or change it. 

2m On-Line Formatting. ES/P automatically provides a correct and 
consistent format, critical for program maintainability. 

3a Context-Sensitive Abbreviations. ES/P builds program structures 
or skeletons with a single keystroke, provides correct keywords and 
punctuation, and saves up to half your typing time. 

4a Program Editing. ES/P manipulates program structures correctly 
with a single keystroke, allows you to delete or move statements 
easily. 

Sa On-Line Programming Help. ES/P provides menus of correct 
program components and correct syntax as an aid to faster 
programming. 

ES/P is now becoming available to computer manufacturers for 
inclusion in their software packages; to distributors and dealers for 
resale; to universities and schools as an aid to teaching program¬ 
ming; and to programmers who want to cut their work in half 
while writing better programs. 

CIRCLE NO. 114 ON READER SERVICE CARD 

To order, contact; Lifeboat Associates 

1651 Third Avenue New York, NY 10028 
(800) 847-7078 

EELLES(S)FT 

THE FIRST NAME IN PROGRAMMING PRODUCTIVITY 

(206) 828-7282 












DASCON-1 


monitors the analog voltage and re¬ 
sponds with the digital decision. It 
would be necessary to build in logic 
controls to prevent the system from 
cycling on and off as clouds passed 
over the solar cell. 

In the Titchener Hall case, only 
one channel of digital output was 
monitored because I only needed to 
turn a relay on or off. Actually, 
DASCON-1 provides 8 bits of digital 
output at the PB output. 

High-quality Addition 

In DASCON-1, Metrabyte has pro¬ 
duced a high-quality, professionally 
designed addition to the IBM PC 
that will make data input and out¬ 
put easy. The careful design is evi¬ 
dent from the manual and software 
programs that come in the package. 
Details such as a rechargeable on¬ 
board clock battery, easy-to-reach 
calibration pots, and sufficient cali¬ 
bration software make DASCON-1 a 
pleasure to use. Imi^i 

DASCON-1 

Metrabyte Corporation 
254 Tosca Drive 
Stoughton, MA 02072 
617-344-1990 
$485 

CIRCLE 489 ON READER SERVICE CARD 


Table 2: Software Modes for BASIC Calls 


Mode 

0 

1 


3 

4 

5 

6 

7 

8 

9 

10 


Function 

A/D free scan, data collected asynchronously 
Conversion requested on single A/D channel, data transferred 
when finished 

Conversions requested on all channels, data transferred when 
finished 

Same as mode 2 but conversions are performed by interrupt 

Disables interrupt modes 3 and 5 

Same as mode 0 but data is collected on interrupt 

Collects data from interrupt modes 3 and 5 

Outputs data to a single D/A channel 

Outputs data to both D/A channels 

Outputs/inputs data to/from digital I/O ports 

Enables/disables clock pulse output 


Figare L- Plot of Data in test of DASCON-1 Temperatme Probe 



Listing 1 LISTING1.BAS: Routine 
To Access Data from Channels 0 
and 1 on the A/D Converter 

10 REM A/D 4 CHANNEL FREE SCAN (MODE 0) 

20 REM PRINTING OUT CONTINUOUS DATA ON A/D CHANNEL 0 & 1 
30 CLEAR,62463! 

40 DEF SEG=0 

50 SG=256*PEEK(&H511)+PEEK(&H510) 

60 SG=62463!/16+SG 

70 DEF SEG = SG 

80 BLOAD -OASCONl.BIN-.O 

90 MD%= 0 

100 CHX=0 

no DIM DI0%{32) 

120 DIOX(0)=0:DIO%{1)=0 
130 BASADR’t=768 
140 DEF SEG = SG 
150 OASCONl = 0 

160 CALL OASCONl (MO'S.CH%,DI0%{0) ,DI0%( 1),BASA0R%) 


170 ATOOO = .0005*DI0%(0) 
180 ATOOl = .0005*0I0%(1) 
210 PRINT ATOOO,ATOOl 
220 GOTO 160 


Listing 2 LISTING2.BAS; Modifi¬ 
cation of Original Program 

10 REM A/D CHANNEL 0 MONITOR WITH INTERRUPT 
20 CLEAR,62463! 

30 DEF SEG=0 

40 SG=256*PEEK(&H511)+PEEK(&H510) 

50 SG=62463!/16+SG 
60 DEF SEG = SG 
70 BLOAD "OASCONl.BIN",0 

80 OPEN "I",I1,"DASCON1.ADR":INPUT#1,BASADRX:CLOSE#1 
90 DIM DI01i(8) 

100 MDS=3 
no CH%=2 


40 


PC Tech Journal 
























120 DI0%(0)=0:DI0S(l)=0 


230 CALL DASCONl {MDX,CHX,0I0X(0),DI0X(1),BASADRX) 



130 BASA0R%=768 


240 MDX=6 



140 DEF SEG = SG 


250 CHX=0 



150 OASCONl = 0 


260 CALL DASCONl (MDX,CHX,DI0X(0),DI0X(1),BASADRX) 



160 CALL OASCONl {MD%.CH%,0I0%(0).DIOSi1),BASADR%) 


270 IF 0I0X(8)=0 GOTO 260 



170 MD%=6 


280 TEMPX=.2* *(DI0X{2)) 



180 CH%=0 


290 LSET 04=MKS$(I) 



190 CALL OASCONl {MD%,CH%,0I0%(0).010%(l),BASA0R%) 


300 LSET N4»MKS$(TEMPX) 



200 IF DI0%(8)=0 GOTO 170 


310 PUT #1 



210 PRINT I,OI0S(0) 


320 PRINT I,TEMPX 



220 GOTO 100 


330 NEXT I 



230 END 


340 CLOSEIl 

350 END 



Listing 3 LISTING3.BAS: Extension 
of Listing 2 


Listing 4 LISTING4.BAS: Modifi¬ 
cation of Listing 1 



10 REM A/D RECORDING CHANNEL 0 ON INTERRUPT TO DISKETTE 


10 REM A/D 4 CHANNEL FREE SCAN (MODE 0) 



20 REM SET TO RECORD 30 DATA POINTS, THEN QUIT 


20 REM PRINTING OUT CONTINUOUS DATA ON A/D CHANNEL 0 4 1 



30 REM SET TO SAVE DATA ON INTERRUPT ONLY!!!!!!!! 


30 CLEAR,62463! 



40 CLEAR,62463! 


40 DEF SEG=0 



50 DEF SEG=0 


50 SG=256*PEEK(4H511)+PEEK(4H510) 



60 SG=256*PEEK(4H511)+PEEK(&H510) 


60 SG=62463!/16+SG 



70 SG*62463!/16+SG 


70 DEF SEG = SG 



80 DEF SEG = SG 


80 BLOAD "DASCONl.BIN",0 



90 BLOAD "OASCONl.BIN",0 


90 DIM DI0X(8) 



100 DIM DI0t(8) 


100 MDX= 0 



no DI0X(0)=0:DI0X(1)=0 


no CHX=0 



120 BASA0RX=768 


120 DI0X(0)=0:DI0X(1)»0 



130 DEF SEG * SG 


130 BASADRX’768 



140 OASCONl * 0 


140 DEF SEG = SG 



150 OPEN "BrPDATA" AS #1 LEN=30 


150 DASCONl = 0 



160 FIELD #1,15 AS DX,15 AS H% 


160 CALL DASCONl (MDX,CHX,DI0X(0),DI0X{1).BASADRX) 



170 LSET D5=MKS$(31) 


170 IF DI0X(0)>»500 THEN DI0X(0)*1 ELSE DI0X(0)=0 



180 LSET N4=MKS$(1) 


180 MDX=9 



190 PUT #1 


190 CHX*0 



200 FOR I»1 TO 31 


200 CALL OASCONl {MDX,CHX,DI0X(0),DI0X(1),BASADRX) 



210 MDX-3 


210 GOTO 100 



220 CHX=2 





Know Thy PC! 


Are you writing programs in BASIC or Pascal? The popular Peeks 
’n Pokes has a disk with 58 programs and a 38-page manual that 
helps you get ‘underneath the covers’ of the PC. Learn how to use 
PEEK, POKE, INP, OUT, and DOS/BIOS function calls to do 
what you want, fast! Do you want to perform functions not 
available from BASIC or Pascal? It’s all explained in the manual 
and demonstrated in the sample programs. Source code included! 

Peeks ’h Pokes shows you how to: 

• Access the system’s configuration 

• Unprotect BASIC programs 

• Scroll part or all of the screen 

• Access the file directory 

• Logically swap printers 

• Read and change the keyboard 

• Find more Peeks and Pokes 

• And much more... for only $30.00 


Want to know more? The Inside Tmckl is a collection of advanced 
utilities for the PC programmer. It contains a disk with 61 pro¬ 
grams, a 42-page manual, and a fold-out memory map that helps 
you get better performance from the PC. With this package you can 
give your programs assembler-assisted speed from high-level lan¬ 
guages, get control over memory, customize and control the PC, 
and more. Some programs require DOS 2.00. Source code included! 

The Inside Track! shows you how to: 

• Read/write files as fast as DOS 

• Display data on the screen faster 

• Reserve memory for your use 

• Copy memory to another location 

• Copy-protect your programs 

• Load large programs faster 

• Control the keyboard settings 

• And much more... for only $45.00 




MasterCard and VISA accepted. Shipping charges: $2.50 per order for UPS; $2.50 per item for First Class Mail to USA and 
Canada; $6.00 per item for Air Mail outside USA and Canada. Dealer inquiries invited. 

Data Base Decisions • 14 Bonnie Lane • Atlanta, GA 30328 • 404/256-3860 

CIRCLE NO. 137 ON READER SERVICE CARD 


September 1984 


41 











Hayes. Leading the way 
with quality telecomputing 
systems for the personal 
computers that businesses 
use most 


When it comes to communicating- 
computer to computer—Hayes says it 
best. All you need is a Hayes Smart- 
modem (it’s like a telephone for your 
computer) and Smartcom II™ software, 
to get you into aU the right places. 

In no time at all, and with no assis¬ 
tance at all, you can aeate, send and 
store files, and automatically log on to 
information services. The communica¬ 
tion possibilities are endless! 

Introducing our new Smartcom U. 

More connection capabilities. 

More convenience. 

Smartcom II continues to maximize the 
outstanding capabilities of Smartmodem. 
And it still helps your computer and 
Smartmodem work together, smoothly 
and efibrdessly. But now Hayes goes 
even further to streamline your commu¬ 
nications and optimize your connections. 


Smartcom II software is currently 
available for more than 12 personi 
computers (\vith even more to come). 
That means you can communicate, 
Smartcom to Smartcom, with an IBM PC, 
DEC Rainbow 100, HP 150, TI Profes¬ 
sional Computer* and others. 

And that’s not all! Smartcom II also 
emulates the DEC* VTIOO and VT52 
terminals, now in widespread use in 
many businesses. This feature lets your 
personal computer “pretend” it’s a DEC 
terminal, opening the door to a vast 
installed base of DEC minicomputers! 

We stand on protocol. 

In addition to the popular Hayes 
Verification protocol, the new Smart¬ 
com II also includes the XMODEM 
protocol, ensuring accurate transmis¬ 
sion to a wide range of personal com¬ 
puters and mainfirames at information 




















"When I got this computer 
I thought my problems were 
over Then it dawned 
on me I needed to talk 
to the PC in sales and 
the Tlin accounting I 
What 1 needed was the 
right modem and 
software, so I went g 
with the leader!” 


services. By matching the protocol (or 
“language") of a remote computer to 
yours, Smartcom II can transmit informa- 
tion error-free, regardless of interference 
on the phone lines. 

Your Haves telecomputing ^stem 
works—totally unattended. 

Smartcom II makes telecomputing 
simnle, even ^vhen you're not there. 

It allows your Smartmodem to receive 
a message for you when you’re out, 
and leave it on your disk or printer. 

And you can tell Smartcom II to “save" 
the messages you've aeated during 
the day, and automatically send them 
at night, when phone rates are lowest. 

Get your bands on the leader. 

With an unsurpassed record of relia¬ 
bility, it's a small wonder Smartmodem 
is such a smart buy! Smartmodem 300™ 


(the first of the Smartmodem series) 
dials, answers and disconnects calls 
automatically. Smartmodem 1200™ and 
Smartmodem 1200B™ (it plugs into an 
expansion slot inside an IBM PC or 
compatible), provide high-speed, high- 
performance communications for busi¬ 
nesses of all sizes. 

And, when Smartmodem is purchased 
with Smartcom II, you have the most 


:onmi: 

Everything we do at Hayes is designed 
to make communications easier for you. 
Feature-rich, direct connect modems. 
Menu-driven software. Concise docu¬ 
mentation. And a customer service 
organization, second to none! 

See your dealer right now for a hands- 
on demonstration of Smartmodem and 
our latest version of Smartcom II. From 
the telecomputing leader. Hayes. 


Hayes Microcomputer Products, Inc. 

5923 Peachtree Industrial Blvd., 
Noraoss, Georgia 30092.404/441-1617. 

CIRCLE NO. 158 ON READER SERVICE CARD 


Smartcom II, Smartmodem 300, Smartmodem 1200 and Smartmodem 1200B are trademarks of Hayes Miaocomputer Products, Inc ‘Ifademarks of International Business Machines Corp., Digital 
Equipment Corporation, Hewlett-Packard and Ibxas Instruments. ©1984 Hayes Miaocomputer Products. Inc. 











PC BRAND HAS UNKMABLE 


C has rapidly become the language of 
choice for serious software devel¬ 
opers. The language of maximum 
portability across the spectrum of 
today’s personal computers. The 
language which will most rapidly adapt 
to tomorrow’s machines. The companion 
language to Unix™, the operating 
system destined for predominance. 
Major companies such as Microsoft and 
MicroPro know this. They have switched 
to C for their applications development. 
How ready are you for the future? 

PC Brand has the complete line of 
today’s finest professional C tools. Not 
just the finest compiler, but libraries for 
graphics and screen design, overlay 
linkers, and program editors acclaimed 
as the best of their kind. It is a complete 
workshop of craftsman’s tools which will 
turn you into a C professional in a hurry; 
capital equipment which will pay back 
your investment many times over. 

Take the time to read this advertise¬ 
ment. You are sure to see the competi¬ 
tive edge these products will deliver. 


LfiinCEC 

The Pieesainent 16-bit C Compil&c 


Y OU can find a more economic way to 
learn C, but if your interest is 
program development. Lattice C™ is the 
unparalleled choice. Byte said "the 
Lattice C compiler produces remark¬ 
able code .. .outstanding in terms of 
both execution speed and code com¬ 
pactness’’. After reviewing nine 
compilers for the PC, the PC Tech Journal 
unequivocally declared Lattice C "best 
for software development... it compiles 
fast and produces fast programs”. 

Lattice C is a full implementation of 
Kernighan and Ritchie, not a subset, and 
even offers extra features such as nested 
comments, 39-character variable names 
and extra compile time checks for some 
of C’s subtler errors. The compiler 
comes with a full library of I/O routines 
which implement under MS™-DOS most 
of the Unix-compatible standards 
described by Kernighan and Ritchie. 


HALO 

A Spectacular Graphics Extension to Lattice C 


PMATE 

The Programmer’s 
Word Processor 

P mate was designed for program¬ 
mers. We’ll wager that you cannot 
find a programmer who has discovered 
Pmate and moved on to something else. 

Pmate is a full screen editor with ten 
auxiliary buffers for squirreling away 
pieces of text until needed. It uses single 
key commands to move the cursor, or 
text, or insert or delete, or rescue sev¬ 
eral thousand characters of deleted text. 

It has a format mode for tab setting or 
wraparound and shaping when it’s time 
to write documentation. Pmate lets you 
assign chains of commands or strings of 
text to single keys: one keystroke could set 
up the entire shell of a new C function, 
for example. 

Pmate has variables, if-then state¬ 
ments, loops. It calculates, and converts 
decimal to hex to binary and back. You 
can write compact programs (called 
"macros") to delete comments, for exam¬ 
ple, or check syntax, or process long 
sequences of commands. Macros can al¬ 
phabetize lists, do row and column math, 
perform a series of operations on multi¬ 
ple files, even summon other macros. 

Put another way, Pmate is a text editor 
with its own built-in interpretive lan¬ 
guage. A language you can use to com¬ 
pletely customize this text editor to your 
fancy. Possibly the most artful, ingenious 
program you have ever seen. 

Product Code: S0600 Our Price: 

Suggested Retail: $225.00 * 175.00 


H alo™ will astound you. It provides a 
complete library of graphic func¬ 
tions which can be linked with your Lat¬ 
tice programs to create full-color charts, 
graphs, simulations, even animation. 

Over 100 commands-are at your 
disposal, including plot, line, arc, box, 
circle, plus single commands to produce 
bar graphs and pie charts. Pattern-fill 
and dithering commands give your 
graphics impressive texture and color 
mixes, rubber-banding draws shapes for 
interactive users, area moves produce 
animation, fill and flood commands paint 
areas. The newest version allows you to 
define your own world coordinate 
scheme, divide the screen into 
"viewports" (windows), and scale 
graphic figures automatically. 

It’s a long list of capabilities which 
make for an extraordinarily powerful 
product. In fact. Halo is so good that 
manufacturers of graphics boards and 
systems are adopting it as a standard 
graphics language. So it can bridge your 
application to other systems. CAD-CAM 
developers, especially, have embraced 
its device-independent approach for 
maximal portability. 

Halo is a dazzling demonstration of 
why C has become the language of 
choice among programming profes¬ 
sionals: its function library architecture 
means you can tremendously enhance 
your firepower by acquiring libraries of 
software like Halo with dramatic 
economy of time and money. 

Requires IBM monochrome or color 
graphics card or equivalents. 

Product Code: S0300 Our Price: 

Suggested Price: $200.00 * 125.00 


Lattice C runs on virtually any com¬ 
puter using an 8086 or 8088 microproces¬ 
sor, and we carry two versions for either 
PC-DOS™ or CP/M-86™. Create your 
source files with any word processor or 
text editor like Edlin or our Pmate™ and 
Lattice C will compile them into Intel 
8086 object module format ready for 
linking with other modules by linkers 
such as DOS’ Link or our Plink86™. 

Lattice C offers a choice of four mem¬ 
ory models which allow the program 
designer to choose the right combination 
of efficiency and size for an application: 
a range between 64K and a full mega¬ 
byte for program and data area size. 

The documentation, which Byte says 
"sets such a high standard of excellence 
that others don’t even come close", 
features sample source programs and 
covers the interface to assembly 
language and machine dependencies. 

C’s structured approach encourages 
development of tight, fail-safe functions 
which can be counted on to return 
reliable results every time. Local 
variables unknown outside of functions 
to safeguard against collision. Extremely 
powerful nested expressions which 
produce elegant, concise code. 

Requires 128K RAM. 

For PC-DOS: Product Code: SOlOO 

For CP/M-86: Product Code: S0120 Our Price: 

Suggested Price: $500.00 * 295.00 

PUNK86 

Ovmrlay Linkage to Expand 

S oftware is becoming ever more 
sophisticated, which means more 
complex programs requiring large 
chunks of memory. But if you use extra 
memory, if you count on users to have 
expanded RAM, you will forego sales to 
those who do not. 

Plink86 is the answer. It takes on the 
job of shoe-horning large programs into 
small memory. First, Plink86 acts as an 
alternative to DOS’ Link. For a language 
like C which encourages design of sep¬ 
arately compiled object modules in the 
Microsoft relocatable format, Plink86 
pulls modules together into single com¬ 
piled programs. But Plink86’s overlay 
power is what has gained it a reputation 
as a miracle worker. It binds into the 
compiled program its overlay manager 
which knows how to swap modules of 
your large linked program between disk 
and memory, so that each can temporar¬ 
ily occupy the same memory space. 

Unlike other linkers, the overlay 
manager acts on its own, needing no 
calls from the source program. Instead, 
Plink86’s straightforward overlay 
description language allows you to 
describe your overlay structure in one 
place in your program — a structure 






VAUJ&FOR r PROF^SIONALS 

Equip Your Workbench with Our 
_ Precision Quaiity Otrftsman' Tools 


C-FOOD SMORGASBORD 

A Menu ofDiiBcult to Prepare C Functions 


C is a language of function libraries: 

sturdy routines which your 
application can effortlessly reference to 
get the job done. But someone has to 
write them. It would take months to 
concoct and perfect the complex and 
useful servings which have been 
prepared for you and thoroughly tested 
in C Food Smorgasbord™. 

Decimal Arithmetic: Functions to 
perform operations on binary-coded 
decimal (BCD) numbers of up to sixteen 
significant digits. Includes trigonometric 
and logarithmic functions, powers, 
conversions to strings, and much more. 

Level 0 I/O Functions: Enable you to 
perform direct I/O operations for 
screen, keyboard, printer, and 
asynchronous port with no dependence 
on higher I/O functions to minimize 
memory usage and maximize speed. 

IBj^m pq bjoS Interface Access: 
Allows you to get at the basic I/O 
services in the ROM BIOS not available 
through the normal operating system to 
get and set the video mode, cursor 
position, color and screen attributes. 


Your Art of the Po^ible 

permitting up to 4,095 overlays stacked 
32 deep. And you don't have to re¬ 
compile to re-arrange the structure. 

Plink86 is a two pass linkage editor. On 
the first reading it determines all mod¬ 
ules which need loading, to insure 
greater flexibility in assigning memory 
segment addresses before the disk file 
is created on the second pass. It can 
even sub-divide its linked output into 
multiple files for programs which must 
span more than one disk. 

But most of all it sets you free to write 
the comprehensive code today’s users 
have come to expect without sacrifices to 
memory constraints. 

Product Code: S0500 Our Price: 

Suggested Price: $395.00 $315.00 


keyboard shift, scrolling, printer channel 
and port status. 

TIP, the terminal independence 
package: Lets you easily move programs 
to computers with different types of 
terminals. 

There is a basket of delicacies beyond 
this brief list; a cornucopia to sample, 
any one of which will save valuable time 
and pay back far more than C-Food 
Smorgasbord’s overall price. 

Product Code: S0200 Our Price: 

Suggested Price: $150.00 $U5.00 


D esigning custom screens is intricate, 
time-consuming, and costly. It can 
make you the loser in competitive 
bidding. It can add weeks, even months 
to bringing your product to market. 

But not when you use Panel™. Put 
Panel to work and you hire a superpro¬ 
grammer for the minimum wage. Telling 
Panel your screen design is like using a 
word processor. You can add, move, 
copy, delete, and reshape fields with 
single key commands. The result? 
Finished C program code with field 
descriptors, color and highlighting, input 
editing by type of field, help keys, and 
warning messages. 

Panel can also create a terminal 
selection program customized for your 
application, and gives you a utility to 
quickly test your finished screens. It 
even includes a multi-key data file 
maintenance program which interacts 
with the screen you design. All the tools 
you need to generate code for the 
trickier aspects of your application, or 
even to create stand alone data entry 
and retrieval products without any 
programming. 

Panel routines are powerful. Unlike so 
many programs which make error 
correction difficult once a field is 
departed. Panel gives the user full field- 


All products operate on the IBM PC or 
PC/XT under PC-DOS and require no 
more than 64K of RAM unless indicated. 

Prices, terms and specifications 
subject to change without notice. 

Prices do not include shipping and 
handling. 

You may freely use these products to 
create software applications for re-sale 
without additional licenses or royalty pay¬ 
ments, provided your applications are not 
wholly or substantially replications of the 
products themselves. 


Unix: TM Bell Laboratories / Lattice C and C-Food 
Smorgasbord: TM Lattice Inc. / MS: TM Microsoft Inc. 
/ Halo: TM Media Cybernetics / IBM: TM 
International Business Machines / Float87: TM 
Microfloat / Panel: TM Roundhill Computer Systems 
Ltd. / Plink86 and Pmate: TM Phoenix Software / 
CP/M-86: TM Digital Research 


to-field movement for editing, and 
overtype or insert/delete within fields. 

A truly superior productivity tool 
every developer should have. 

Product Code: S0400 Our Price: 

Suggested Price: $295.00 $9^1% fll 


FLQAT-B? 

Software Support for 
the 8087Math Chip 

F loat-87^^ is a library of floating-point 
math routines which are merged into 
a Lattice C interface library. The rou¬ 
tines handle all arithmetic functions and 
the most frequently used transcendental 
or trigonometric functions, and pass all 
numbers to the 8087 to take advantage of 
its 80-bit data format. 

Putting Float-87 to work with an 8087 
can increase the speed of floating-point 
calculations by 40 times or more — and 
with greatly expanded accuracy. If you 
or your customers have an Intel 8087 
math processor chip on board, this 
software will switch on its afterburners. 

Product Code: S0700 Our Price: 

Suggested Retail: $125.00 $ 100.00 


PANEL 

Are You Still Coding Hand-Made Data Entry Screens? 


CIRCLE NO. 170 ON READER SERVICE CARD 

You won’t find an offer like this 
elsewhere: Exceptional prices 
and software fully supported by a 
knowledgeable staff specializing 
in ’C’ and companion tools. 


1-800^ BRAND 

That's l-(800) 722-7263. In NY State call (212) 410-4001. 

Charge your purchase to MasterCard or Visa. 

Or mail your order and check to 
PC Brand, P.O. Box 474, New York, N.Y. 10028 


©1984 PC Brand 


PC Brand and Craftsman 
are trademarks of PC Brand. 
















Augie Hansen 

HGH-THll 

MIMKW 


Ten communications packages that allow the 
IBM PC to emulate popular terminals 


M y family and I recently re¬ 
turned home from a week- 
long visit in Florida at the 'Temple 
of Tall Tales and Technology." My 
daughter, who is slightly more than 
a year old, has a whole new percep¬ 
tion of reality. To her, Tm sure, a 
typical afternoon now includes leap¬ 
ing through hyperspace to Mars, 
trying to separate a world-famous 
rodent from his nose, and dancing 
with an overgrown duck (Donald's 
50 years old this year). In cohtrast. 


her ordinary life at home will seem 
like sensory deprivation. 

I was intrigued by the myriad 
impersonators and impostors we saw 
and heard: Audio-Animatrons, pup¬ 
pets, fiberglass models, and people 
decked out in animal suits, all pre¬ 
tending to be something they're not. 
This article examines some imper¬ 
sonators in the microcomputer 

Augie Hansen is a programmer for a major 
telecommunications company. He wrote 
Chrome Ranger, a game for the IBM PC. 









Mimicry 


world: communications packages 
that include terminal emulation 
among their capabilities. 

Recently Tve been calling such 
packages by a new name, which 
was an unwitting creation of Carole 
Autenzio, PC Tech Journal's edito¬ 
rial assistant. She got tired of saying 
"'terminal emulators" during our 
frequent conversations and subcon¬ 
sciously shortened the phrase to 
"termulators"; I've been using that 
marvelous contraction ever since. 

Each of these "termulators" can 
make the IBM PC masquerade as a 


Relay. In addition, I've included 
information about a free program 
called SIMTERM that also does ter¬ 
minal emulation and is supplied 
with complete Pascal and assembly 
language source code. 

I selected these terminal emula¬ 
tors for review because they mimic 
one or more of the widely used 
video terminals on the market. 

Most of the communications pro¬ 
grams now on the market claim to 
emulate a "dumb" terminal, defined 
a$ a terminal that sends everything 
typed on the keyboard to the re- 


Table 1: Summary of Terminal Emulations 


EMULATED TERMINAL TYPE 


PROGRAM NAME 

LSI ADM3a 

ADDS Regent 

Hazeltine Esprit 

IBM 3101 

OD 

a> 

•H 

H 

Q> 

OB 

1 

e 

Os 

O 

Os 

M 

S 

DEC VT100/VT52 

TI 940 

Custom 

Communique 




Y 


Y 



Crosstalk XVI 


Y 


Y 

Y 

Y 

Y 


direct.connect 

Y 








IBM 3101 Emulation 




Y 





The Impersonator 

Y 


Y 

Y 

Y 

Y 


Y 

OmnitermZ 






Y 


Y 

PC/InterComm 






Y 



SIMTERM 

Y 








SmarTerm 100 






Y 



Relay 






Y 




terminal of at least one well-known 
model. Some can do as many as six 
impersonations, which qualifies 
them for the terminal emulator 
equivalent of the Rich Little act- 
alike award. One package even calls 
itself the Impersonator. 

The other programs reviewed 
are Omniterm2, PC/InterComm, 
direct.connect. Crosstalk XVI, 
SmarTerm 100, Communique, the 
IBM 3101 Emulation Program, and 


mote computer and dumps every¬ 
thing received to the console. This 
article examines emulations that are 
considerably more sophisticated, 
giving the user control over screen 
displays and possessing the ability to 
interpret keyboard commands and 
special functions. 

Table 1 shows at a glance 
which terminals each of the tested 
programs claims to emulate. I exam¬ 
ine each program's emulation capa¬ 


bilities and compare them to the 
real McCoys. Most of them do a de¬ 
cent job; some are superb. 

Types of Terminals 

Like people, terminals are not all 
created equal in appearance, intelli¬ 
gence, or station in life. The diver¬ 
sity is astounding. Broadly speaking, 
there are dumb terminals and intelli¬ 
gent terminals. Some manufacturers 
use the term smart to mean a me¬ 



dium level of intelligence, brighter 
than dumb but not as bright as in¬ 
telligent. Others use smart and intel¬ 
ligent synonomously. 

Dumb Terminals. It was not 
too many years ago that dumb 
terminals were not considered so 
dumb—they were the only game in 
town. In comparison to many termi¬ 
nals today, however, a typical dumb 
terminal can do very few things. In 
addition to displaying the next re¬ 
ceived character at the current cur¬ 
sor or head position, most dumb ter¬ 
minals can interpret a few ASCII 
control characters called format ef¬ 
fectors to do backspace, form feed, 
line feed, tab, and other formatting 


48 


PC Tech Journal 








































operations typical of simple charac¬ 
ter-by-character hard-copy printers. 

Many of today's video terminals 
are essentially dumb terminals with 
cathode-ray tubes (CRTs) instead of 
print heads and paper. These are 



often called glass TTYs in honor of 
their close operational resemblance 
to older printing Teletype ma¬ 
chines. (The term TTY is taking on 
new meaning these days—Teletype 
is making some intelligent video 
terminals that don't look and act at 
all like their clanky ancestors.) 
Smart and Intelligent 
Terminals. Generally speaking, 
an intelligent terminal is one that 
has local memory, some processing 
power, and peripheral interfaces to 
permit it to do tasks normally done 
by a host computer. 

Many terminals use control (es¬ 
cape) sequences to set and report the 
cursor position, set video attributes, 
insert and delete characters or lines, 
clear the screen, and protect data- 
entry fields. By themselves, in my 
view, these editing capabilities do 
not qualify the terminal to be con¬ 
sidered smart or intelligent. 

Of course, that's a debatable 
stand. There is really no consensus 
on what separates the morons from 
the merit scholars among terminals. 

I conducted an informal poll of 
about 30 programmers, hardware 
designers, and marketers. Most 
agreed that an ADM3a is a dumb 
terminal. Beyond that, there was lit¬ 
tle agreement on anything. 


Try this as a starting point for 
further discussion. A smart or intel¬ 
ligent terminal earns its higher IQ 
rating based upon how well it does 
the following tasks (in addition to 
editing): manipulating data,* range¬ 
checking and validation; blocking, 
compressing, and storing data,- calcu¬ 
lating; searching; communicating, 
including transferring files; print¬ 
ing; and more. An intelligent termi¬ 
nal is, in essence, a special-purpose 
computer system. 

The bibliography cites some 
documents that try to define what 
an intelligent terminal is, with 
varying degrees of success. My as- 





sertion above is most in line with 
the description given in Intelligent 
Terminals: Functions, Specifications, 
and Applications (Bernstein and 
Kashar, 1978). 

Terminal Emulation 

The ability to emulate terminals is 
important when the user is commu¬ 
nicating with hosts that run full¬ 
screen editors, spread-sheets, and 
other programs that require tight 
control over what goes where on 
the screen. Some dumb terminals 
are marginally useful for such tasks 
but put a tremendous burden on the 
host computer. Others—those that 
lack cursor addressing—are vir¬ 
tually useless for such purposes. 

Giving the terminal some 
"brains" solves some of the prob¬ 
lems. It is of little value, however, 
to add intelligence to a terminal if 


the host computer doesn't know 
how to interact with it. Many mini¬ 
computer and mainframe operating 
systems keep a database of terminal 
capabilities, so that if the user is 
running a full-screen editor applica¬ 
tion, and the host knows he is using 
a VTIOO terminal, the host can in¬ 
terpret special keyboard functions 
and can manage the screen effec¬ 
tively. In other situations, the editor 
may be in the terminal's memory, 
thus completely off-loading from 
the host any interactions during the 
editing session. 

The following material is a 
summary of my tests and evalua¬ 
tions of terminal emulation pro¬ 
grams for the IBM PC that try to 
fool a host computer into thinking 
the communicating machine is one 
of the popular terminals listed. 

VTlOO-series Emulations 

Digital Equipment Corporation has 
sold large numbers of VTIOO termi¬ 
nals throughout the world. This ter¬ 
minal has two things going for it: it 
incorporates a VT52 mode so that 
the large base of existing software 



for that popular terminal can be run 
without change; and it was the first 
to conform, in a manner of speak¬ 
ing, to the ANSI standards for ter¬ 
minal devices. For a long time, it 
was one of only a few terminal 
types to do so. (See the sidebar on 
ANSI standards for terminals.) 

The VTIOO implements only a 
subset of the ANSI standard func- 


SEPTEMBER 1984 


49 














Table 2: Comparison of VTIOO Emulators and VTIOO Terminal 


Mimicry 

tions, and it adds many '"DEC Pri¬ 
vate" functions that are not part of 
the standards. It is, however, one of 
the most popular terminals ever pro¬ 
duced, so emulating it is sensible. 

Table 2 is a summary of VTIOO 
emulators and the features each sup¬ 
ports. Virtually all of the programs 
tested that have a VTIOO emulation 
incorporate a VT52 mode. The 
SmarTerm 100 and PC/InterComm 
programs also emulate the VTIOO 
set-up operations. None of the pro¬ 
grams tested claims to do the 
double-high and double-wide line 
displays, but PC/InterComm simu¬ 
lates them by spacing displayed 
lines horizontally and vertically. 
Omniterm2, PC/InterComm, Com¬ 
munique, and SmarTerm 100 add 
the editing features of the VT102 or 
VT132 terminal—insert/delete 
character and line, and replace 
(overstrike) mode—that are missing 
from the basic VTIOO. 

All of the packages tested fail to 
perform some VTIOO functions as a 
result of the hardware limitations of 
the IBM PC. For example, none of 
them permits separate transmit and 
receive speeds because the IBM 
asynchronous communications card 
won't support that. None supports 
the graphics mode of the VT52. 

Such features as the RS-232 port 
status report are not applicable. 

Each of these products uses 
color on displays that support it. 
PC/InterComm allows the user to 
switch between display adapters 
during execution. All the others use 
the monitor that was the default at 
the time the program was loaded. 
SmarTerm 100 will handle the 132- 
column screen with a Supervision 
display adapter board made by Cali¬ 
fornia Computer Systems. 

Crosstalk XVI and PC/Inter¬ 
Comm implement the reverse video 
screen mode of operation perfectly. 
SmarTerm handles the mode accept¬ 
ably from the set-up form but not 
when under control of the host 
computer. It is necessary for a dear- 
screen command to be sent to make 


EMULATOR PROGRAM 


VT 100 

TERMINAL 

FEATURES 

Crosstalk XVI 

Impersonator 

Communique 

OmnitermI 

PC/InterComm 

SmarTerm 100 

Relay 

Terminal Setup Screen Forms 

No 

No 

No 

No 

Yes 

Yes 

No 

Cursor Type UL/Block Select 

UL 

UL 

UL 

UL 

Yes 

Yes 

No 

Response to "What Are You?"^ 

NOP 

NOP 

NOP 

NOP 

AVO 

AVO 

AVO 






-f 








GPO 



PF1-PF4 Keys Simulated 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

80/132 Columns 

No 

No 

No 

No 

No 

[2] 

No 

VT52 Emulation 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

ANSI/VT52 Selection 

Yes 

Yes 

No 

Yes 

Yes 

Yes 

Yes 

Scrolling Region 

Yes 

No 

No 

Yes 

Yes 

Yes 

Yes 

Smooth Scroll 

No 

No 

No 

No 

Yes 

Yes 

No 

Cursor Keys on: 








Numeric Keypad 


Yes 

Yes 


Yes 

[3] 

Yes 

Function Keys 





Yes 

Yes 

No 

<Alt> + <top row> 

Yes 



Yes 




Reverse-screen Mode 

Yes 

No 

No 

No 

Yes 

Yes 

No 

Margin Bell ON/OFF Select 

No 

No 

No 

No 

Yes 

Yes 

No 

Wraparound ON/OFF 

Yes 

No 

Yes 

Yes 

Yes 

Yes 

No 

Settable Tabs 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

VT102/132 Extensions 

No 

No 

Yes 

Yes 

Yes 

Yes 

No 

Select Graphic Rendition (SGR) 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

Screen Alignment Test 

No 

No 

No 

No 

Yes 

Yes 

No 

LED Display 

No 

Yes 

No 

No 

Yes 

Yes 

No 

BREAK Signal Key Provided 

Yes 

Yes 

Yes 

Yes 

Yes 

Yes 

No 


[Setup form] 


["slow scroll"] 


[Setup form] 


(Some combinations 
are not possible.) 


1 NOP-No Options; AVO-Adv. Video Option; GPO-Graphics Processor 
Option. 

2 Requires Supervision display adapter card. 

3 <Shift> -h <arrow> required to move cursor. 


50 


PC Tech Journal 



















the mode take effect, and doing that 
makes the user lose the context of 
the work in progress. 

The other programs do not 
emulate the reverse-video screen, 
although they can be tricked into it 
if the user sends the SGR 7 mode 
command (Select Graphic Rendi¬ 
tion-reverse video) and a dear- 
screen command. I think the re- 
verse-video screen looks garish, but 
a lot of people seem to like it. 

All of the programs send the 
DEC sequences assigned to the PFl- 
PF4 function keys, using the IBM 
PC function keys F1-F4 to do so. 

The remaining function keys (F5- 
FIO) and their Shift-, Alt-, and Ctrl- 
key alter egos are used for cursor 
positioning and switching contexts 
within the communications pro¬ 
gram. They usually may be assigned 
to any purposes the user desires, as 
long as that purpose is within the 
capabilities of the hardware. Only 
Relay is an exception in this regard. 
It uses the Alt-Fl through Alt-F4 
sequences to simulate the VTlOO's 
PF1-PF4 keys (because F1-F4 are per¬ 
manently assigned to other tasks). 

IBM 3101 Emulations 

In a dramatic departure from the 
IBM world of computer communi¬ 
cations, in which EBCDIC reigns 
supreme, IBM introduced the 3101 
ASCII terminal. (The PC is also an 
ASCII-oriented device.) The 3101 is 
a lovely terminal in many ways. It 
has a fine ''Selectric-style" key¬ 
board, a screen that is easy on the 
eyes, and some nice terminal fea¬ 
tures—all in all an attractive pack¬ 
age. Most of the terminal options 
are chosen through set-up switches 
that are accessible to the user. 

IBM sells a 3101 emulation 
package for the PC and XT that 
comes as close to the real thing as 
one could expect given the hard¬ 
ware differences between the ma¬ 
chines. It is obviously the reference 
program for this comparison. 

None of the 3101 emulators 
allows the use of transparent and 


local modes. The IBM program 
modifies some functions, such as Set 
Control, to exclude control-code bits 
that are not necessary. The Set Con¬ 
trol function is not necessary by the 
other programs because they do not 
implement block mode. None of the 
programs supports any foreign- 
language features. 

Table 3 is a summary of the 
IBM 3101 emulators tested. Except 
for the IBM program, which imple¬ 
ments some of the block mode fea¬ 
tures, the programs are nearly the 
same from an operational perspec¬ 
tive. The Impersonator is much the 
easiest of these programs to use. 

TeleVideo 910/920 series 
Emulations 

TeleVideo has been producing 
smart terminals for a number of 
years and has recently moved into 



Z n its efforts to keep the 
cost low, TeleVideo 
made one design deci¬ 
sion 1 wish it hadn't: the 
company used a video 
memory that is only 1,920 
hytes small and a brain¬ 
damaged video controller. 



the microcomputer field as well. 
The company's terminals have al¬ 
ways been packed with many fea¬ 
tures for the money. As a user of 
terminals, I appreciate the pains tak¬ 
en by TeleVideo to provide a high 
degree of "functionality," especially 
in the area of video attributes and 
control capabilities. 

In its efforts to keep the cost 
low, TeleVideo made one design de¬ 
cision I wish it hadn't: the company 
used a video memory that is only 
1,920 bytes small and a brain-dam- 
aged video controller. That memory 
size contrasts poorly with the 4K 


bytes in the PC's display memory 
for one screenful of characters and 
attributes. Each even byte in the 
PC's display memory holds a charac¬ 
ter code (one of 265) and each odd 
byte holds the video attribute of its 
corresponding character. 

To control the video attributes 
on its screens, TeleVideo uses what 
have been dubbed "magic cookies" 
in display memory. No, these are 
not brownies laced with a con¬ 
trolled substance; they are bytes of 
display memory that hold special 
codes to set video attributes. These 
attributes have effect from the time 
they are first set until they are 
cleared. The bytes used for this are 
effectively stolen from the bytes 
otherwise used to store displayable 
characters. To work with display 
memories that use "magic cookies," 
programmers must go through all 
kinds of gyrations to write code that 
can manage screen displays cor¬ 
rectly. Programs that emulate Tele¬ 
Video terminals need to account for 
this difference in display memory 
implementation. 

An example of the differences 
that must be considered in writing 
an emulation program is the way 
the functions that clear to the end 
of a line are implemented. The 
TeleVideo terminal allows two 
methods: the erased characters can 
be converted either to spaces or to 
nulls. The emulations treat both 
methods identically and just pad the 
memory buffer with spaces in the 
prevailing attribute. 

The Impersonator and Crosstalk 
XVI provide TVI910/920-series 
emulations. Again, Crosstalk pro¬ 
vides a prepackaged set-up that can¬ 
not be modified. It combines the 
features of the 910 and 920 termi¬ 
nals. The Impersonator implements 
most of the features of the 912 ter¬ 
minal. For all the purposes I found 
for using this terminal emulation, 
the two programs are nearly identi¬ 
cal. On systems that have databases 
of terminal capabilities, specify the 
tvi912c entry—it seems to be op- 


SEPTEMBER 1984 


51 









Mimicry 


timum for both the Impersonator and Crosstalk XVI 
when these programs are used with screen editors and 
similarly demanding applications programs. Be sure to 
specify the “c" suffix, because early TeleVideo termi¬ 
nals were incredibly slow at certain operations, such as 
scrolling the screen up, and they required lots of pad¬ 
ding to accommodate their sluggishness. 

Neither the Impersonator nor Crosstalk XVI 
implements the block and protect mode operations 
available with the 910/920 series. Also, neither specifi¬ 
cally sets up the function keys of the 920 terminal. 
Crosstalk allows the user to customize the IBM func¬ 
tion keys; the Impersonator avoids the problem by sim¬ 
ply not claiming to emulate a 920. Special editing, func¬ 
tion, and transmission keys are primarily what distin¬ 
guish the 920 from the 912. 

Lear Seigler ADM3a Emulations 

The LSI ADM3a terminals are a bit like pennies. 
They're found everywhere, and they continue to serve 
even when old and tarnished. About five years ago I 
walked into a computer facility that had just received 
about a hundred of these light-blue-encased, one-eyed 
monsters; they were arrayed, rank and file, like a small 
army awaiting orders. I felt lucky to escape unscathed 
and have had a hard time feeling comfortable using one 
of them ever since that encounter. Of course, they are 
very dumb and rather slow, which may also play a part 
in causing me to feel as I do. Despite these drawbacks, 
the ADM3a has been a workhorse in the computer in¬ 
dustry for years, and many programs will run on these 
terminals easily. 

Three of the programs reviewed include an 
ADM3a emulation. The direct.connect program and 
SIMTERM, at least in their current versions, emulate 
nothing else. The Impersonator also pays homage to 
this electronics beast of burden burden. 

There is nothing particularly tricky about the LSI 
ADM3a terminal or any of its emulators. Aside from al¬ 
lowing the user to clear the screen, position the cursor, 
and perform a few other functions, the terminal basical¬ 
ly behaves just as a printing terminal does, except that 
it uses a CRT screen instead of paper. All of the emula¬ 
tions worked as they should while running editors and 
other programs that required, as a minimum, cursor 
positioning. 

Miscellaneous Emulations 

Time did not permit testing of the remaining three 
emulations. The creators of the Impersonator state that 
it can pretend to be a Hazeltine Esprit, a rather nice 
video terminal that is finding its way into computer fa¬ 
cilities and offices. Crosstalk, in addition to the emula¬ 
tions already described, is supposed to be able to func¬ 
tion as an ADDS Viewpoint and as a TI 940 terminal. 


Table 3: Comparison of IBM 3101 Terminal 
and Emulators 


EMULATOR PROGRAM 


3101 TERMINAL 
FEATURES 

Crosstalk XVI (Model 10) 

IBM 3101 Emul. Pgm. (Model 20) 

The Impersonator (Model 10) 

Communique (Model 10) 

Set Tab 

Yes 

Yes 

Yes 

Yes 

Clear Tab 

Yes 

Yes 

Yes 

Yes 

Back Tab [B] 

— 

Yes 

— 

- 

Start Field [B] 

- 

Yes 

- 

- 

Read Cursor Address 

Yes 

Yes 

Yes 

Yes 

Read Buffer [B] 


Yes 

- 

- 

Set Control 

No 

Yes 

No 

No 

Cursor Motion Control 

Yes 

[*] 

Yes 

Yes 

Yes 

Codes 





Write Send Mark [20] 

— 

[!] 

- 

— 

Cursor Home 

Yes 

Yes 

Yes 

Yes 

Erase to EOF/EOL 

Yes 

Yes 

Yes 

Yes 

Erase to EOS 

Yes 

Yes 

Yes 

Yes 

Erase Input 

No 

Yes 

Yes 

Yes 

Clear All 

Yes 

Yes 

Yes 

Yes 

Insert Line [B] 

— 

Yes 

— 

— 

Delete Line [B] 

- 

Yes 

- 

- 

Insert Char. [B] 

— 

Yes 

— 

— 

Delete Char. [B] 


[%] 

Yes 



Cancel [20] 

- 

[!] 

- 

- 

Print Line [20] 

- 

[!] 

- 

- 

Print Message [20] 

— 

[!] 

— 

— 

Print Page [20] 

— 

Yes 

- 

- 

Set Buffer Address 

Yes 

Yes 

Yes 

No 

Set Cursor Address 

Yes 

Yes 

Yes 

Yes 

Insert Cursor 

Yes 

Yes 

Yes 

No 

Lock Keyboard 

Yes 

Yes 

Yes 

Yes 

Unlock Keyboard 

Yes 

Yes 

Yes 

Yes 

Function Keys (PF1-PF8) 

Yes 

Yes 

Yes 

Yes 

Transparent Mode 

No 

No 

No 

No 

Block/Char. Mode Select 

— 

Yes 

— 

— 

Norm/Trans/Prgm Mode 

- 

Yes 

- 

- 

Select 





Erase Keys (4) Simulated 

No 

Yes 

No 

No 

Cursor Motion Keys 

Yes 

Yes 

Yes 

Yes 

Enabled 





Local Mode Operation 

No 

No 

No 

No 


[B] —> Block mode only 

[20]^ Model 20 only 

[*] —> Some bits always set or ignored 

[!] —♦ Not supported 

[%] —♦ Canadian French not supported 

— —> Not applicable 


52 


PC Tech Journal 














Custom Emulations 

Two of the emulator programs—the 
Impersonator and Omniterm2—will 
permit users to extend their capabil¬ 
ities if they dare or are pressed hard 
enough to try. These programs 
make extensive use of input and 
output filtering and translations to 
do their emulations. Both emulators 
make those capabilities available to 
the user through the use of various 
menus and work screens. 

The concept is deceptively sim¬ 
ple: every key press sends a code 
that can be passed through unmod¬ 
ified or captured and translated into 
a local action or a sequence of codes 
to be sent out. Similarly, a character 
being received may be passed or 
converted. Even patterns may be 
captured and translated. With a pro¬ 
gramming language of decision 
statements and actions, it is possible 
to do many interesting emulations. 

Of the two packages, the Imper¬ 
sonator is far more sophisticated in 
the way it handles the preparation 
of emulations and in the breadth of 
its capabilities. More features are 
also being added. Owners of the cur¬ 
rent version will be treated to a free 
update that will speed up some op¬ 
erations and increase the flexibility 
of the actions that can be taken, 
making possible more block-mode 
emulations and other extensions. 

Figure 1 shows a work screen 
from the Impersonator that exem¬ 
plifies the clean method used to dis¬ 
play and modify translation tables 
and other configurable elements. 

Users who decide to "roll their 
own" emulations should be pre¬ 
pared to do much experimenting 
and to pad their walls with some¬ 
thing soft; there are many subtle 
interactions and "gotchas" lurking 
about in terminals. 

Conclusions 

Besides the terminal-emulation 
aspects, these programs also have 
other general communications capa¬ 
bilities,- I did not, however test any 
of these features. In each case, a full 


set of capabilities—including file 
transfers, local printing, and general 
access to bulletin boards and infor¬ 
mation services—is promised. 

On the whole, the quality of 
the documentation provided ranges 
from good to excellent. The manual 
provided with the Impersonator is 
complete and nicely produced, but 
it needs better organization in some 
areas and better coverage of the 
emulations that are provided. The 
direct.connect package has well- 
written documentation that benefits 
from tabbed section dividers. The 
documents that accompany 
PC/InterComm and IBM 3101 Emu¬ 
lation Program are the most thor¬ 
ough in describing what their pro¬ 
grams do. PC/Intercom's manual is 
neat and well written, but the type 
size may be a bit small for old eyes. 

Communique is a new product, 
and its lack of maturity shows 
clearly when it is compared with 
some older products. It has good 
potential, particularly for use in a 
UNIX environment in which the 
extra tools provided with the pack¬ 
age aid in handling multiple file 
transfers and other functions. Its 
documentation is currently in a 
comb-bound booklet that has the 
look of UNIX documentation. It 
measures SMz inches by 11 inches, 
unlike albthe others, which come 
in the familiar half-size format. 

Only one of the programs 
tested, SmarTerm 100, is copy pro¬ 
tected. All the others may be 
backed up freely and placed on hard 
disks. Persoft provides two complete 
copies of the program diskette, and 
each may be used once to transfer 
needed files to a hard disk. If a reg¬ 
istered user needs to update or re¬ 
place a hard disk more than twice, 
Persoft will describe how to do it. I 
don't like to see software of this 
type copy protected because of the 
inconvenience it causes end users. 
To its credit, however, Persoft has 
been helpful on the phone and has 
tried to minimize the adverse effects 
of copy protection. 


On the basis of VT 100-series 
emulations alone. I'd choose either 
PC/InterComm or SmarTerm 100. 
For users who need a range of 
general-purpose emulations and the 
potential to expand to others essen¬ 
tially at will, the Impersonator 
looks hard to beat. 

For overall versatility and gen¬ 
eral use. Crosstalk and Omniterm2 
are both strong contenders, but 
don't rule out any of these pro¬ 
grams. Competition in the field of 


Photo 1: The Impersonator 
Displaying a Work Screen 
Used to Set Up Translations. 



terminal emulation is becoming so 
fierce that it is hard to find a really 
bad product. Of course, that situa¬ 
tion is good for you and me. li"'—I 

References 

Bernstein, George B., and Arnold S. 
Kashar, Intelligent Terminals: 
Functions, Specifications and Ap¬ 
plications, Q.E.D. Information 
Sciences, Inc., 1978. 

Guide to Intelligent Terminals, 
AUERBACH, 1976. 


September i984 


53 















Mimicry 


Vital Statistics 


Communique 

Computerized Office Services, Inc. 
313 North First Street 
Ann Arbor, MI 48103 
313^5-8778 

Languages: C and Assembly Language 
S195 

CIRCLE 495 ON READER SERVICE CARD 

Crosstalk XVI 
Microstuf, Inc. 

1845 The Exchange, Suite 140 
Atlanta, GA 303S? 

404-952-0267 

Language: Assembly Language 
$195 

CIRCLE 499 ON READER SERVICE CARD 

dnect.coimect 
Direct.aid, Inc. 

P.O. Box 4420 
Boulder, CO 80306 
303422W80 

Languages: Microsoft Pascal and 
Assembly Language 
$95 

CIRCLE 498 ON READER SERVICE CARD 

IBM 3101 Emulation Program 
IBM 

Boca Raton, FV33432 
305-998-2000 


The Standards Issue 


Given the utter chaos in the field of 
computer terminal devices, it would 
seem that the standards promulgated 
by the American National Standards 
Institute (ANSI) have been forgotten. 
For a long time, only a handful of 
terminal devices conformed to the 
standards, and then only loosely. 
Most terminal manufacturers chose 
to follow their own courses, hoping 
that one or more of their product's 
great features would attract more 
buyers than the features of someone 
else's terminal would. 

The situation is improving, 
though. Many of the terminals intro¬ 
duced in the last few years have ad¬ 
hered at least partially to the stan¬ 
dards—enough, at any rate, to allow 
the manufacturers to call them 
ANSI-compatible. That compatibility 
is, however, largely an illusion. 

What Standards? 

There is a set of American National 
Standards that attempts to bring 
some order to a relatively chaotic 
scene. It is the result of work done 
by the X3 Committee, more formally 
known as the American National 
Standards Committee on Computers 


Languages: IBM Pascal and Assembly 
Language 
$140 

CIRCLE 497 ON READER SERVICE CARD 

The Impersonator 
Direct.aid, Inc. 

P.O. Box 4420 
Boulder, CO 80306 
303442-8080 

Languages: Microsoft Pascal and 
Assembly Language 
$195 

CIRCLE 496 ON READER SERVICE CARD 

Oinniterm2 

Lindbergh Systems, Inc. 

49 Beechmont Street 
Worcester, MA 01609 
627-852-0233 
Language: MMSFORTH 
$245 

CIRCLE 495 ON READER SERVICE CARD 

PC/InterComm 
Mark of the Unicorn, Inc. 

222 Third Street 
Cambridge, MA 02142 
617^576-2760 
Languages: Lattice C and 
Assembly Language 
$99 

CIRCLE 494 ON READER SERVICE CARD 


and Information Processing, X3. 

Three of the standards applicable to 
this discussion are X3.4, X3.41, and 
X3.64. These deal primarily with 
codes and character sets, formatting, 
and basic control functions. Others 
that apply specifically to data link 
control issues are also available. 

The standards are voluntary and 
have about the same force as resolu¬ 
tions of the United Nations General 
Assembly—few people pay attention 
to them, but we all sleep a little bet¬ 
ter at night knowing someone cares. 
It is fortunate that the standards, 
e^ecially X3.4, have had greater 
effect on the communications indus¬ 
try than most UN resolutions have 
had on governments, 

ANSI X3.4-1977. This document 
defines the 7-bit character representa¬ 
tions for control and graphic charac¬ 
ters that we so blithely refer to as 
ASCII. The control characters are 
nondisplay items that control the 
communication process and format 
the printing or displaying of informa¬ 
tion. The latter are called "format 
effectors" and include horizontal and 
vertical tabs, carriage return and line¬ 
feed (or newline), form feed, etc. Of 


Relay 

VM Personal Computing 
60 East 42nd Street 
New York, NY 10165 
212-686-1450 

Language: Assembly Language 
$149 

CIRCLE 491 ON READER SERVICE CARD 

SmarTerm 100 
Persoft, Inc. 

2740 Ski Lane 
Madison, WI53713 
608-273-6000 

Languages: Compiled BASIC and 
Assembly Language 
$150 

CIRCLE 493 ON READER SERVICE CARD 

SIMTERM 
Jim Holtman 
5 Dogwood Trail 
Randolph, NJ 07869 
Languages: IBM Pascal and Jissembly 
Language 

Free (send diskette and mailer with 
adequate return postage) 

CIRCLE 492 ON READER SERVICE CARD 


the three documents discussed here, 
this is the most useful and the most 
respected by the industry. 

The 1977 standard (denoted by 
the ''-1977" appended to the base 
number) is an updated version of the 
original 1968 standard. Action must 
be taken within five years of the 
publication date of a standard to reaf¬ 
firm that standard, revise it, or scrap 
it, so the documents should not be¬ 
come too outdated. 

ANSI X3.41-1974. It didn't take 
the people who wrote the standards 
long to realize that the number of 
unique codes that can be expressed 
directly by a 7-bit code is too small 
to handle the wide variety of control 
and graphic requirements of com¬ 
puter users. Something had to be 
done, and it was. In fact, it was antic¬ 
ipated in the definition of ASCII 
codes. Four codes were assigned a 
special purpose: code extension. 

This document describes 7-bit 
code extension techniques, clever 
ways to make a 7-bit quantity have 
more meaning than the normal 128 
permutations of its bit values. The 
techniques center on the use of four 
special-purpose codes. The Shift In 


54 


PC Tech Journal 












(SI) and Shift Out (SO) codes are used 
to switch between alternate graphic 
character sets. The Escape (ESC) con¬ 
trol code prefixes sequences of a lim¬ 
ited number of characters to provide 
a wide range of additional control 
codes. The Data Link Escaj^ (DLE) 
code is similar to ESC, but it provides 
a means of creating supplementary 
data transmission control functions. 

X3.41 does not define precisely 
what specific control sequences 
mean. Instead, it reaffirms the origi¬ 
nal ASCII control and graphic codes, 
labeling the sets CO and GO respec¬ 
tively, and gives some general guide¬ 
lines on implementing alternate sets 
of control codes and graphic codes 
(Cl and Gl), as well as multiple-byte 
GO sets if more than 94 characters 
are needed. This document also de¬ 
fines how to switch between the var¬ 
ious character sets and describes 
methods of creating escape sequences 
of 2, 3, and n characters. 

The document also deals with 8- 
bit codes and ways of applying a 


''family concept" to the definition of 
codes for compatibility with the 7-bit 
codes and for doing code extensions 
in the 8-bit framework. X3.28-1971 
defines the purpose and use of nine 
data link control characters plus the 
DLE character, which is used in con¬ 
structing additional sequences of data 
link control codes. 

ANSI X3.^4-1979. This document 
attempts to define escape sequences 
for specific purposes, such as posi¬ 
tioning a cursor, clearing the screen 
of a display terminal, and many 
others. It must be one of the most 
confusing sets of instructions ever de¬ 
veloped. It is not possible simply to 
look up a function in a table to see 
what its escape sequence should be. 
Instead, to piece together a control 
sequence, it is necessary to follow a 
set of "rules" that is strikingly simi¬ 
lar to the instructions in some adven¬ 
ture games. This provides plentiful 
opportunities for confusion and er¬ 
ror, and many terminal designers 
have made errors of interpretation. 


The No-cost Alternative 


When the range of commercial com¬ 
munications programs for the IBM 
PC could be counted on two fingers, 
Jim Holtman and his son Eric wrote 
their own in Pascal. They called it 
SIMTERM, a euphemistic concatena¬ 
tion of terminal simulator, It was the 
Holtmans' original intention that 
SIMTERM be used mainly in the 
UNIX environment, and because of 
that, its user interface was strongly 
biased toward programmers. 

The original program had two 
remarkable matures in addition to its 
generally useful operational features: 
it was free, and it was supplied with 
full Pascal and assembly language 
source code in addition to the execut¬ 
able programs. The user was not 
even requested to send money to the 
authors if he liked and used the pro¬ 
gram. There was, however, one 
catch—the user had to provide the 
needed RS232INT.BAS file (or, for 
ACS version 2.0, RS232INT.EXE. 

As time passed, features were 
added, bugs fixed, and the needs of 
other users were accommodated. The 
latest version includes a lot of nice 
enhancements, including XMODEM 
protocol file transfers, support for 
bulletin board users, command script 
files, remote access and control, and 
Ventel auto-dial modem support. It's 
still free, and it now includes its own 
machine language interface module, 
so the user no longer has to be a reg¬ 
istered owner of IBM's ACS package 
to use SIMTERM legally. 

SIMTERM is comparable to 
many commercial programs, and it 


has some nifty features. Here is an 
abbreviated list of the program's 
main features. 

• Fully configurable (from com¬ 
mand line) 

• Log session to printer and/or 
disk 

• XON/XOFF flow control 
(may be disabled) 

• Programmable function keys 
(from key definition file) 

• Supports multiple COM ports 
and IRQ levels 

• Direct connect option for 
hard-wired lines 

• Command script files 

• Remote access and control op¬ 
eration 

• Uses all available memory as 
a scrollable session buffer 

• Has many options for file pro¬ 
cessing and printing 

• Upioad/download (three vari¬ 
eties, including XMODEM) 

• On-line help (context-depen¬ 
dent help frames) 

• Exit to DOS with hang-up and 
no-hang-up options 

• Hang up line without exiting 
to DOS 

• Local line editing and 
retransmission 

• Vental auto-dial modem 
support 

• Character-graphics mode op¬ 
tion (bit 8 enabled) 

• Terminal emulation (LSI 
ADM3a) 

I have used the program with Hayes 
external and built-in modems, the 
U.S. Robotics Password modem, and 


X3.64 is a "living" document in 
that it describes procedures for a re¬ 
gistry of escape sequences and their 
meanings, except for what are con¬ 
sidered "private" escape sequences. 
The registration of sequences tries to 
guarantee that items that should be 
used identically by everyone are in 
fact used in that way, and that those 
that must be unique are unique. 

Information, Please 

Information about the status of ANSI 
standards and copies of individual 
standards documents may be ob¬ 
tained by writing or calling the 
American National Standards Insti¬ 
tute, 1430 Broadway, New York, NY 
10018, 212-354-3300. The Institute 
also provides information about stan¬ 
dards published by the International 
Organization for Standardization 
(ISO). A catalog costs $10; individual 
documents vary in price. 

-AH 


standard 212A- and 103-compatible 
modems wihout difficulty. The user 
will have to flip a few switches on 
some of the modems; information 
about this is provided in a 12-page 
"readme" file on the distribution 
disk. Because the Holtmans have the 
Ventel modem, they designed for it 
rather than the Hayes. If they re¬ 
ceive enough requests for Hayes sup¬ 
port, it will be added. They got my 
request already. 

There is a growing interest in 
SIMTERM, especially in the univer¬ 
sity community. Many universities 
run the UNIX operating system on 
their main computers and are setting 
up PC labs, using IBMs and work- 
alikes in addition to other equip¬ 
ment. SIMTERM gives the schools a 
painless way to connect the PCs to 
the main computers. A public do¬ 
main program called UMODEM can 
handle the UNIX end of XMODEM 
file transfers, so all the pieces are 
available at little or no cost. 

If you want a copy of SIM¬ 
TERM, first try a friend or computer 
club that may already have the pro¬ 
gram. If that doesn't work, send a 
formatted diskette in a suitable 
mailer with return postage tO: 

Jim Holtman 
35 Dogwood Trail 
Randolph, NJ 07869 
Jim and Eric get nothing from 
this except the satisfaction of know¬ 
ing others use and enjoy their pro¬ 
gram. If you don't really need it, 
please don't waste their time. 

-AH 


September i984 


55 











ILLUSTRATION ‘GARY CICCAKFl 








OMNIUM 

GATHERUM 

if * 


Corvus Systems' Omninet can support a miscellaneous collection of 
computers in the same network. 


C orvus Systems' Omninet is the grand old man of microcomputer net¬ 
works. It began its electronic life by connecting Apple II and TRS-80 
computers and has since evolved into the network community's equiva¬ 
lent of the intergalactically renowned (at least to readers of Douglas Adams' 
Hitchhiker’s Guide to the Galaxy) babblefish. 

Omninet is designed to interconnect a variety of microcomputers, all of 
which can be running under different operating systems. When each computer 
is provided with network hardware and drivers appropriate to the particular 
machine, they are all able to share a central disk server, mass storage devices, 
printers and other peripherals. PC Tech Journal has a Johnny One-Note variety 
• of microcomputers available for testing, and therefore we were able to evaluate 
network performance only on IBM PCs. 


Susan Glinert-Cole and Julie Anderson 




CORVUS 


The operating systems that are 
presently supported for the PC are 
DOS 1.1, 2.0, and 2.1. Although 
Omninet is written in UCSD Pascal, 
no drivers are provided for either 
the UCSD p-System or any version 
of CP/M. Minimum requirements 
for a user station are one disk drive 
and 64K of memory. The station 
used to generate the network system 
and set up the server software needs 
128K and one disk drive. Omninet 
uses stand-alone disk servers for 
sharing mass storage, and to imple¬ 
ment spooling it uses either a sepa¬ 
rate print server, which can service 
one parallel and two serial devices, 
or an IBM PC with a printer. 

Omninet is not inexpensive. 

The server ranges in price from 
$1,995 for a 5-megabyte disk to 
$4,995 for a 45-megabyte disk. Each 
station requires a transporter card 
that costs $495. Print spooling and 
back-up facilities run the price up 
even more: the printer server is 
$990 and the bank tape back-up 
costs $2,195. Neither the trunk 
cable nor the printer cable come 
with the package. 

The network is a CSMA system 
and uses RS-422 twisted-pair wire in 
a linear bus configuration for both 
the trunk and drop cables. Connec¬ 
tions between the drop and main 
cables are made by means of trans¬ 


ceivers that are housed in small 
plastic boxes. The length of the 
trunk cable cannot exceed 4,000 
feet. Network throughput speed is 
one megabaud per second. 

All of the devices on the net¬ 
work-hard disks, print servers, and 


computers—have individual trans¬ 
porter boards installed to handle 
communications; each board is set 
to a unique address. As many as 64 


devices can be linked together into 
an Omninet system. The network 
uses no interrupt or DMA channels,- 
it uses I/O ports 248h to 24Bh. 

The Omninet package provides 
the services of the four lower layers 
of the ISO/OSI protocol. The upper 
three layers are supplied by Corvus 
for each machine. Corvus reserves 
the word Omninet for the lower 
four protocol layers only and uses 
the designation Constellation II to 
mean the higher-level network soft¬ 
ware. We will refer to the entire 
system as Omninet, because that 
name is generally more familiar to 
the computer community. 

All transporter boards are iden¬ 
tical in nature; no master network 
controller is required. The trans¬ 
porter is responsible for generating 
and receiving message acknowledg¬ 


ments, retransmitting messages in 
the absence of acknowledgments, 
and detecting duplicate messages. 

File or Message Transfers 

When the transporter has a packet 
ready to send, it checks the trans¬ 


mission line for traffic. If the line is 
idle, transmission proceeds. Other¬ 
wise a random delay count is gener¬ 
ated, after which transmission is 


again attempted. The process is re¬ 
peated until the line is idle, or until 
the number of retries exceeds the 
limit set internally. Collision detec¬ 
tion is not required. 

From the host's point of view, 
the unit of transfer is a single mes¬ 
sage. To send a command to the 
transporter, the host computer 
formats a command vector in mem¬ 
ory and sends the address of that 
vector to the transporter. The trans¬ 
porter converts the message into a 
data packet by adding system infor¬ 
mation and then converts the pack¬ 
et to a synchronous serial bit stream 
and sends it out over the network. 
Currently, Omninet implements 
seven commands (see table 1). 

Only one message can be sent at 
a time, but up to four can be re¬ 
ceived simultaneously. Four sockets 
in the transporter are activated by a 
unique vector that contains the 
SETUP RECEIVE command; these 
sockets thus operate independently. 
Messages are split into a user-data 
portion and a user-control portion, 
and each is assigned its own host 
computer memory buffer area by 
the SETUP RECEIVE command for 
that particular socket. 

Network devices initiate com¬ 
mands by sending 3 bytes, which 
represent a 24-bit address, to the 
local transporter. This address con¬ 
tains the command vector, which 
includes a command code, a result- 
record address, and other informa¬ 
tion required to process the com¬ 
mand. After the command has been 


Table 1: Currently Supported Omninet Commands 

INITIALIZE 

Initialize transporter (automatic at power-on) 

SEND MESSAGE 

Send a message to a specific node or broadcast to all nodes 

SETUP RECEIVE 

Prepare to receive a message 

END RECEIVE 

Stop receiving messages 

WHO AMI 

Return node ID number 

ECHO 

Check for the existence of a specified node 

PEEK/POKE 

Set transporter parameters (e.g., number of retries) 



58 


PC Tech Journal 














executed, the transporter signals the 
host by altering the result record. 
Computers that support interrupts 
will generate one after the result 
record has been modified. 

Disk servers have limited buffer 
space; disk commands longer than 
4 bytes are sent in two parts. The 
first transfer sends the first 4 bytes 
of one disk command to the server. 
The host computer waits for a 
"GO" response from the server be¬ 
fore it sends the rest of the com¬ 
mand. The server can queue one re¬ 
quest for each network device. 

System Set-up 

The hardware set-up for Omninet is 
reasonably simple in concept: each 
device in the network must have a 
transporter board installed and set to 
a unique address. Corvus devices, 
such as the disk and utility servers, 
come with the transporter hardware 
already installed. 

Each device is connected from 
its transporter board to the trunk 
cable by a drop cable and a trans¬ 
ceiver (called a tap box). The drop 
cable plugs into the tap box with a 
jack, but the trunk cable attach¬ 
ment is a little trickier. 

The outer shield of the 
trunk cable must be 
carefully stripped, so 
as not to cut the in¬ 
ner shielding, and the 
cable placed into two slots 
in the tap box. It takes a fine, steady 
hand with a knife, razor blade, or 
pair of wire strippers to accomplish 
this. The bus must be terminated 
with two resistors, which are not 
included in the price of the net¬ 
work. (We got ours at Radio Shack 
for 39 cents.) 

The hardware documentation 
is, for the most part, clearly written, 
but it is not well organized. Each 
device comes with its own manual; 
another manual contains the in¬ 
structions for installing the soft¬ 
ware,- and the transporter boards 
come with a separate pamphlet de¬ 
tailing the set-up of the boards. 


cables, and tap boxes. There are no 
indices in some of the manuals, and 
we often had three of them on our 
laps simultaneously while attempt¬ 
ing to diagnose a problem. 

Several omissions and errors 
caused considerable installation 
problems. One error was serious 
enough to make installation impos¬ 
sible as described. A picture of the 
address dip switches shows all the 
switches UP as address 00. Unfor¬ 
tunately, this is backwards; all 
switches UP should be address 63. 
When the system-generation pro¬ 
gram asked for the address of the 
server to be installed, it found no 
server with address 00; the system 
hung and had to be rebooted. 

This problem would not have 
been as serious if all of the switch 
settings were consistently incorrect. 
In fact, they were correctly de¬ 
scribed in some places (in the pam¬ 
phlets for the transporter boards, for 
example). The dip switch problem, 
which plagued us throughout 

the installation, 


OmniDrive Diagnostic Guide. As in 
all of the hardware manuals, these 
sections are organized in a "paint- 
by-number" scheme: follow each 
step in the guides, and the installa¬ 
tion is complete when all the num¬ 
bers have been used up. This would 
have been a satisfactory presentation 
had everything gone smoothly. 
When problems occurred, however, 
it was less than satisfactory. There 
are few, if any, problem-determina¬ 
tion procedures other than "Contact 
your Corvus representative." 

The software comes on four 
diskettes, three of which are the 
p-System software kernel. The 
fourth contains PC-DOS drivers and 
the user-station software for manag¬ 
ing volumes and performing print 
spooling functions. Corvus main¬ 
tains that the Omninet diskettes are 
not copy protected, but we were un¬ 
successful in making back-ups for 
two of the three p-System disks. 

The system set-up and main¬ 
tenance software is entirely menu 
driven and simple to use. Once it 



caused us to coin our Omninet Mot¬ 
to: What goes up, must be down. 

The most irritating aspect of the 
installation process was the lack 
of meaningful error messages and, 
in some cases, the absence of any 
error messages at all. Although the 
system does present error codes on 
occasion, there was no table of error 
messages in the documentation. 

Also missing were several errata 
sheets that were essential. 

The main manual is divided 
into four sections: system genera¬ 
tion, system manager's guide, net¬ 
work station user's guide, and 


was correctly installed, we had no 
problem with the software. 

Software installation is begun 
by booting the system-generation 
diskette, CORMS21, and entering 
the system password provided in the 
manual. The initial menu presents 
several choices: Initialize Drive, 
Drive Management, Maintenance 
Utilities, Configure System, List 
Drives, and Help. All disk servers 
on the network must be initialized 
before installation can proceed. 
When the drive initialization option 
is selected, another menu appears 
that asks the user to name the disk 


September i984 


59 












CORVUS 


server, create a server password, 
name the drive, and create a drive 
password. The standard configura¬ 
tion allows up to 512 users, 512 vol¬ 
umes, three computer types, and 


of volumes are made when the user 
is granted volume access. 

Interestingly, the manual, 
which contains an extensive walk¬ 
through of the installation proce¬ 



four Omninet disk servers. If these 
parameters are not satisfactory, or if 
Apple II computers will be part of 
the network, other configurations 
can be designated. 

Once the drive(s) have been ini¬ 
tialized, the Omninet software 
copies system files from the floppy 
disk drive to the Corvus Volume. 
The entire process is well prompted 
from clear menus and takes about 
30 minutes. The system must be re¬ 
booted to continue the installation. 

Selecting the Drive Manage¬ 
ment option at the main menu 
brings up a second-level menu that 
contains additional programs to 
manage volumes, volume access, 
users and devices, and operating- 
system boot environment. At this 
point, volumes need to be created 
for the network users. This is easily 
done by choosing the Volume Man¬ 
ager option; another menu floats to 
the top. Volumes are created with a 
name, size, and operating system 
type. Adding volumes is done by re¬ 
petitively pressing a few keys until 
the disk runs out of space, the user 
runs out of patience, or all desired 
volumes have been created. 

Privacy protection in Omninet 
is implemented by granting selected 
access to a volume or volumes with 
the Access Manager. Access can be 
read-only or read/write. As many as 
10 volumes can be automatically as¬ 
signed to drive letters (called 
mounting) when the user boots the 
station software. These assignments 


RAM disk) are assigned to a drive 
letter, these device drivers should 
precede the Corvus driver in the 
CONFIG.SYS file. This procedure 
will mount all Corvus volumes on 
drive letters following those of the 
local MS-DOS device drivers. 


Information Transfer 

File and message transfers, as well as 
print spooling, are implemented 
with a pipe area. This is a special 
volume, called PIPES, created in the 
mass storage system. All users who 
will be transferring information 



dure, grants the user access before 
the user is actually created. The sys¬ 
tem doesn't seem to care whether or 
not the user really exists. 

Users are created with the User 
Manager facility. They are assigned 
a password, a home disk server, and 
a boot operating system. For obvious 
reasons, the user's boot operating 
system must agree with the vol¬ 
umes that have been mounted with 
the access manager. 

The creation of DOS 2.0 boot 
disks for the user station involves 
the process of copying the files on 
the CORMS24 diskette to an MS- 
DOS diskette that has been format¬ 
ted with the system on it. A CON¬ 
FIG.SYS file on the boot disk must 
contain this instruction: 

DEVICE = CORDRV.BIN 

If Other device drivers (such as a 


For DOS 1.1, a custom BIOS 
interface routine containing the 
Corvus device driver is installed on 
the disk server. The boot disk re¬ 
ceives a modified boot record that 
transfers control to that custom 
BIOS routine. 

The system is rebooted with the 
user-station diskette, which presents 
the CORVUS sign-on menu and 
prompts for the user's password. 
When it has been successfully en¬ 
tered, any AUTOEXEC.BAT file is 
executed, and the familiar DOS 
prompt appears. All mounted vol¬ 
umes are accessible with drive let¬ 
ters beginning with the first one 
available after the local drives. For 
example, if a host computer has two 
floppies, a RAM disk, and a fixed 
disk, the first network volume 
would be mounted on drive E.-. 

Software set-up was easy (no dip 
switches here). Because it is written 
in p-System, however, the Omninet 
software goes back to the disk to 
load and initialize an overlay for 
each menu selection. After only a 
little while, the delays became irri¬ 
tating. Clearly, system installation is 
not a frequently performed task, so 
its duration is not a significant fac¬ 
tor,- however, repetitive installations 
induced by error conditions can 
make the process time-consuming, 
although the system manager would 
rarely spend several hours a day 
with the set-up utilities. 


60 


PC Tech Journal 










must have access to this volume. 
Once the volume is created, users 
send files to the pipe area with the 
name of the intended recipient, 
which is designated as the pipe 
name. The pipe name can be an¬ 
other user, a local printer, or a de¬ 
vice, such as the print server. 

Files transmitted via pipes are a 
convenient way of converting files 
from one operating system format to 
another. Information can be re¬ 
trieved from PIPES by using the 
DESPOOL program and naming the 
pipe for which to search. Files that 
are spooled to a print spooler are de- 
spooled automatically. 

Internode spooling requires the 
purchase of the Omninet print serv¬ 
er or a PC with an attached printer. 
Otherwise, users are limited to 
spooling to local printers or to the 
display. Although Corvus describes 
the PIPES volume as a message cen¬ 
ter, it was awkward to use. 

The SPOOL and DESPOOL pro¬ 
grams default to PRINTER as the 
name of the pipe to be used. Thus, 
in order to send a file or a message 
to another node, these programs 
must be reconfigured to reflect the 
change in pipe name. This change 
is not saved, which requires the 
sender or recipient to load the pro¬ 
gram and perform the change man¬ 
ually each time it is desired. 

If a message is waiting in PIPES, 
the recipient is not informed; he or 
she must periodically check the vol¬ 
ume for the correct pipe name. Al¬ 
though the user can despool to the 
printer, file, or console, the message 
is gone forever and cannot be re¬ 
peated once it has been despooled. 

This would not be critical if 
reasonable error checking were per¬ 
formed so that the recipient could 
change a disk or close the drive 
door. We despooled a message to a 
full disk by accident: the message 
was removed from the pipe by the 
despooler and tossed away. 

Corvus markets a separate elec¬ 
tronic mail package called Omni- 
Mail for use with the network. If 


Table 2: Benchmark Results 


PC-DOS 

1 user 

1 user 

2 users 

2 users 


2.0 

stn. 1 

stn. 2 

stn. 1 

stn. 2 

I/O Benchmarks (in seconds) 




random access 

0:06 

0:08 

0:07 

0:16 

0:14 

sequential read/write 

0:29 

0:36 

0:32 

0:49 

0:49 

sequential read 

0:14 

0:16 

0:15 

0:24 

0:24 

dBASE sort, 1 key 

0:40 

0:42 

0:42 

0:51 

0:47 

dBASE index, 1 key 

0:29 

0:34 

0:34 

0:60 

0:60 

dBASE index, 2 keys 

0:29 

0:32 

0:32 

0:55 

0:55 

Word Processor Benchmarks 




WordPerfect: 






load wp from hard disk 

0:04 

0:08 

0:08 

0:15 

0:13 

load wp from floppy disk 

0:14 

0:11 

0:10 

0:11 

0:11 

exit wp (to hard disk) 

0:01 

0:04 

0,03 

0:05 

0:04 

load file from floppy 

0:04 

0:03 

0:03 

0:03 

0:03 

save file to floppy 

0:18 

0:19 

0:19 

0:19 

0:20 

load file from hard disk 

0:02 

0:03 

0:03 

0:04 

0:04 

save file to hard disk 

0:15 

0:16 

0:16 

0:20 

0:20 

WordStar: 






load wp from hard disk 

0:06 

0:06 

0:07 

0:08 

0:08 

load wp from floppy disk 

0:07 

0:07 

0:07 

0:07 

0:07 

exit wp (to hard disk) 

0 

0 

0 

0 

0 

load file from floppy 

0:03 

0:10 

0:03 

0:10 

0:10 

save file to floppy 

0:32 

0:33 

0:33 

0:34 

0:34 

load file from hard disk 

0:03 

0:04 

0:04 

0:06 

0:06 

save file to hard disk 

0:10 

0:12 

0:12 

0:19 

0:17 


message transfer is a priority for the 
network, the extra expense should 
be considered. (We did not receive 
OmniMail in time for our review.) 

One of the most pleasant fea¬ 
tures of Omninet is its mass storage 
tape back'-up, called the Bank. Tapes 
are available in 100- or 200-mega- 
byte capacities, and the software 
provides elegant and flexible options 
for saving and restoring disk images 
and volumes. Additionally, an en¬ 
tire drive can be copied to a second 
drive, or a tape transferred to a sec¬ 
ond tape (assuming there is a second 
Bank on the network). 

Performance 

We tested OMNINET with six 
small benchmark programs designed 
to view network performance with 
a heavy I/O load (see table 2). The 
random-access test writes 50 records, 
within a 1,000-record file, to 50 
other records. Each record is 50 
bytes long. The sequential-read test 


reads 641 lines, each 50 bytes long, 
within a 40,000-byte file. The se¬ 
quential read/write test reads and 
then writes 641 lines, each 50 bytes 
long, to another file. 

The dBASE II benchmarks used 
200 records, each containing fields 
for name, address, telephone num¬ 
ber, and zip code. These records 
were sorted on one key, indexed on 
one key, and indexed on two keys. 
The word processor benchmarks 
were performed with WordStar and 
WordPerfect, in conjunction with a 
30,000-byte file. 

The programs were run under 
several different conditions, with 
the OMNINET hardware always 
in situ, except for the control tests 
in the standard single-user PC-DOS 
environment. The user-1 unit was 
an IBM PC with an expansion chas¬ 
sis, 512K, a 10-megabyte fixed disk, 
and an IBM Graphics printer. The 
user-2 machine was a PC with 256K 
memory, without a printer. 


September i984 


61 











CORVUS 

First the single-user tests were 
done on each unit, while the second 
computer was idle. Next, the tests 
were performed with both com¬ 
puters simultaneously running the 
benchmarks from different volumes 
on the disk server. 

Under PC-DOS alone, the ran¬ 
dom access test took 6 seconds, the 
sequential read/write test took 29 
seconds, and the sequential read test 
took 14 seconds. Performance in the 
single-user situation did not decline 
noticeably using the Omninet soft¬ 
ware. When two users performed 
these tests simultaneously, bench¬ 
marks that accessed the fixed disk 
showed some degradation, but in 
general, the degradation was neither 
excessive nor particularly notice¬ 
able. The Omninet software had a 
similarly mild effect on the dBASE 
II and word processor benchmarks. 

Although the software is rea¬ 
sonably robust, it does have a few 
quirks that range from irritating to 
disastrous. Error checking on input 
is lackadaisical. Often the system 
will accept inaccurate information 
without warning the user that it 
will do so. When asked to remove a 
volume, the volume manager does 
not provide a warning message that 
files are still present in the volume. 

Omninet has few, if any, provi¬ 
sions for fielding time-out errors. If 
a device is unavailable, the com¬ 
puter that is requesting transmission 
hangs. Corvus intends to fix this 
problem in another release. 

Users might feel somewhat iso¬ 
lated within Omninet. There is no 
way to find out which devices are 
hooked to which host computers or 
to see who is on the network. 

A more serious omission is the 
lack of any provision for dynamic 
disk, file, and record locking to pre¬ 
vent data corruption in a multi-user 
situation. All users are assumed to 
be friendly to the network, but 
there is no way, when accessing a 
file, to find out if someone else is 
currently using it. Corvus imple¬ 
ments semaphores for these facili¬ 


ties, and they are available to appli¬ 
cation programmers who are writing 
multi-user software to run on Omni¬ 
net. However, dynamic locking at 
several levels is now available on 
many local area networks that do 
not even require separate disk serv¬ 
ers. 

The Omninet protection 
scheme is primitive; two passwords, 
one for the system manager and one 
for the disk server, will get a user 
into the entire system. Privacy is 
available only at the volume level. 
Once a user has access to a volume, 
he or she has access to every sub¬ 
directory and file that is contained 
therein. There is no way to write- 
protect a single file or group of files 
within a volume. Again, several 
other networks offer more sophisti¬ 
cated privacy schemes. If privacy 
and disk-data corruption are impor¬ 
tant factors, purchasers of Omninet 
will have to look to application pro¬ 
grams to provide these facilities. 

The installation problems aside, 
Omninet is nicely designed and gen¬ 
erally bug-free. The integration of 
utility servers and mass storage 
back-up provides a sense of unity to 
the network hardware and software 
environment. More significant, 
Omninet's transparency and speed 
are excellent. Revised documenta¬ 
tion and well-implemented applica¬ 
tion software will augment what is 
already a sturdy product, capable of 
handling the network requirements 
of a small business office. lim—i 

Omninet 

Corvus Systems, Inc. 

2100 Corvus Drive 
San Jose, CA 95124 
408-559-7000 

CIRCLE 484 ON READER SERVICE CARD 



Imagine your PC with 
Apparat add-ons. Imagine 
where it could take you. 

special values from the hard disk 
experts. For example, imagine your IBM 
PC or Portable PC with hard disk capabiliu^ 
Apparat s external Hard Disk Subsystem 
is completely compatible, running DOS 
2.0 or 2.1 without modification or device 
drivers. And now you can get more capac¬ 
ity—22 and 33 MB formatted configura¬ 
tions—for less money. 22 MB for $2,295, 
33 MB for $2,995. Apparat also offers 
internal or external 10 MB drives at simi¬ 
larly low prices. 

OT owners—trade in your 10 MB 
drive for a larger Apparat hard disk 
drive. Our 22 MB drive is $1,299, but 
you pay just $899 with a trade-in of your 
existing 10 MB drive. Our 33 MB drive is 
just $1,799, but you pay just $1,399 when 
you trade in your existing 10 MB drive. 
Call the Apparat ordering hotline for 
trade-in details and shipping instructions. 

TEAC or Panasonic floppies. These 
half-height floppies are perfect for your 
PC, PPC, or XT. Call for trade-in prices on 
full-height floppies. 

New 28 pin EPROM programmer. 
Now Apparat has a new Prom Blaster for 
the PC, XT, PPC and PCjr to program most 
28 pin EPROMS (including the 2764,128, 
256), in addition to our original Prom 
Blaster that programs most 24 pin EPROMS 
...each $129. We also make an EPROM 
cartridge for the PCjr to accept your newly 
programmed EPROMS. 

PPC and PCjr. Apparat has developed 
new products for the IBM Portable PC. 
Now available is a 256K RAM card and a 
Combo card (P & S). Both fit the PPC short 
slots. New for the PCjr is a 128K RAM card 
and a Combo jr card (P & elk). Both fit the 
side attachment. 

Other Apparat add-ons. RAM cards 
for the PC and XT—64K $189, expandable 
to 512K. COMBO II card for the PC and XT, 
5 functions on one card— $189. CRAMBO 
card for the PC pigg\^backs COMBO II on 
64K RAM card— $359. 64K internal PRINT 
SPOOLER with parallel interface— $299. 
Stand-alone at $319. 

Warranty. All Apparat manufactured 
PC. boards sold after June 1,1984 covered 
by our exclusive lifetime limited warrant 
covering parts and labor. 

^^ Apparot.lnc. 

ADD ON AND ON AND ON AND ON AND ON 

ORDERING AND DEALER 
INFORMATION 

800 / 525-7674 

Price.s subject to change without notice. 


61 














APPARAT TAKES YOUR PC TO NEW REALMS. 


4401 South Tamarac Parkway, Denver, CO 80237—Customer Service 303/741-1778 
Apparat retail outlets—DENVER: 4401 S. Tamarac Pkw^^ 303/771-2032 • 5224 W. Warren Ave. 303/985-1217 
CHICAGO: 1844 S. Arlington Heights Rd. 312/640-0322 


CIRCLE NO. 106 ON READER SERVICE CARD 











Mr. Chips Plays Ibur PC 
Like a One Man Band 



Mr. Chips, the new multi-function 
card from Orange Micro, adds a full 
ensemble of features to your IBM® 
PC. Memory, printer ports, and a 
clock are standard, and you’d 
expect them on a top quality board. 

But computing is changing. 

Soon computers will take care of 
everyday things; like watering the 
lawn, or turning on your lights when 
it gets dark. And onlyJVlr. Chips can 
do this now. These capabilities are 
standard, so your growing needs 
won’t require additional equipment. 

There’s also a dual game port, so 
you can duel to the end, by yourself 
or with a friend. 

Every Mr. Chips comes with Chip- 
disk™ software, for RAM disk and 
print spooling. With RAM disk you 
set up your PC’s memory to act like 
a disk drive. This means much 
faster execution and searching of 
programs. Print spooling sets your 
PC’s RAM to serve as a printer 
buffer, so you can compute even 
while your printer is printing. 


You can orchestrate 



remarkably low price. 
Visit your dealer and see for your¬ 
self: Mr. Chips is the multi-function 
card for today.. .and tomorrow. 


The First Multt-fimction Card with 9 Standard Features 


• Parallel Port*: Great for getting fast printouts on 
efficient dot matrix printers. 

• Serial Port: The most popular way to access high 
grade letter quality printers or phone modem 
communications. 

• 64K-256K RAM: Upgrade your PC’s memory to 
handle powerful Integrated software and other larger 
programs. 

• Clock/Calendar: Accurately keep track of time and 
date, even when your computer is turned off. 

• Dual Game Port*: Accommodate two complete joy¬ 
sticks at once, so you can play alone or duel with a 
friend. Also for use with CAD/CAM software. 

• Real World Interface: This innovative port can moni¬ 
tor and control equipment like thermostats, moisture 
detectors, photocells and other independent devices. 

■ BSR is a registered trademark of the BSR Corporation 

■ IBM is a registered trademark of International Business Machines Corporation 


• BSR™AC Line Controller*: Control your lights, appli¬ 
ances, security systems, or anything that plugs into 
an AC wall socket. 

• Chipdisk RAM Disk: Set your PC memory to act like 
a disk drive. Your programs will run much faster than 
with conventional disk drives. 

• Chipdisk Print Spooler: Your PC memory will serve 
as a printer buffer, so you won’t have to wait for your 
printer anymore. 

• Cables available separately 



Orange micro 

^ IfK. 


1400 N. LAKEVIEW AVE., ANAHEIM, CA 92807 USA 
(714) 779-2772 TELEX: 183511CSMA 


© Orange Micro, Inc., 1984 


CIRCLE NO. 168 ON READER SERVICE CARD 


Arthur A. Gleckler 


CDMmRING 
GREAT THINGS 
WITH SMALL 



Photo 1: IBM's Compact 
Printer—a low-end, 
inexpensive printer for 
the PC/r owner 


I BM has recently added two 
new printers to its line of per¬ 
sonal computer products. The 
PC Compact Printer, for use 
with the PC/r only, prints on 
special thermal paper. The Color 
Graphics Printer, a monster of a ma¬ 
chine (at 55 centimeters wide by 32 
centimeters deep by 25 centimeters 
high), prints graphics and near-let¬ 
ter-quality text in color. 


IBM's Color Graphics 
and Compact printers 
serve two very 
different segments of 
the PC marketplace. 


PC Compact Printer 

The PC Compact Printer is truly 
compact (31 centimeters wide by 19 
centimeters deep by 9 centimeters 
high) and extremely simple in de¬ 
sign (see photo 1). Only three con¬ 
trols are on the outside of the 
printer: a paper release lever, a 
paper feed button, and an on/off 
switch. A curved cover over the print¬ 
ing mechanism lifts to reveal a rack 
for roll paper. Because the printer 
has been designed specifically for 
the PC/r, there are no DIP switches 
to set or cables to build; instal¬ 
ling the printer is simplicity itself. 

The PC Compact Printer has 
three paper-feeding options: rolls of 


September i984 


65 










Printers 



Photo 2: IBM's Color Graphics Printer—a monster of a printer 
for the business user 


paper, single sheets, and fanfold pa¬ 
per. Because it uses thermal printing 
technology, the PC Compact Printer 
can print only on specially treated, 
thermal paper. Although thermal 
printers are quiet, they also have 
their disadvantages. Text printed by 
thermal printers tends to be rather 
light immediately after printing, 
and it gradually fades away over 
time, especially when exposed to 
bright light. The poor print quality 
and the characteristic silver sheen 
of thermal paper result in a less- 
than-satisfactory printed product; 
the paper is also expensive. 

In defense of IBM, it may be 
said that this printer was designed 
for low cost and the printing needs 
of the average PC/r user. Still, many 
PC/r owners undoubtedly will pur¬ 
chase slightly more expensive im¬ 
pact printers rather than tolerate 
the poor print quality of the PC 
Compact Printer. 

Although most of the control 
codes used with the PC Compact 
Printer are carry-overs from pre¬ 
vious IBM and Epson printers. 


many capabilities are lacking in the 
new printer. Although the Compact 
Printer can print double-width and 
compressed text, it does not have 
emphasized, double-strike, sub¬ 
scripted, or superscripted text, and it 
has only low-density graphics. In 
terms of control codes, it is simply a 
scaled-down version of the IBM 
Graphics Printer. Unfortunately, be¬ 


cause of the lack of medium-density 
graphics, DOS 2.Ts GRAPHICS.- 
COM graphic screen-dump utility 
does not work with the Compact. 

The PC Compact Printer has a 
built-in, three-wire cable that at¬ 
taches to the serial connector 
(marked "S"') on the rear of the PC/r 
cabinet. To attach most of today's 
printers to the PC/r, a parallel print¬ 
er port attachment device is needed. 
IBM's decision to use the PC/r's 
built-in serial port for the PC Com¬ 
pact Printer lowered the cost of the 
printer. 

The documentation included 
with the PC Compact Printer con¬ 
sists of one 36-page insert for the 
PCjr Guide to Operations. The first 
section of the manual details how to 
insert paper, test the printer, and at¬ 
tach it to the PC/r. It also explains 
the shortcomings of thermal paper 
and suggests ways to delay the fad¬ 
ing effect. Technical information in 
the manual includes a list of printer 
control codes and their functions, a 
list of legal print mode combina¬ 
tions, a chart of the characters that 
the PC Compact Printer can print 
(these include most of the PC char¬ 
acter set but not the line-drawing 
characters), and a diagram of con¬ 
nections in the serial cable. 

The PC Compact Printer is 
suited for the home environment in 


Thr Dugl"ip».« t 

report F 

or XBM COLOR PRIN 

TER (DP MODE) 

Eilapiiied i. in 

1 e ™ 3 6 

seco o (d ‘.H o r 50 

lines of text. 

ia5 eharii 

•LeterK pe 
Line*r» pe 

r second for 3350 

r in i 11 i.ie . 

characters. 


Figure 1: A Sample Printed by the IBM Color Graphics Printer 
(DP Mode) Showing Results of PC Magazine Printer Test 



Figure 2: A Sample of Text Printed by the IBM Color Graphics 
Printer (Text Quality Mode) Showing Results o/PC Magazine 
Printer Test 



Figure 3: A Sample of Text Printed by the IBM Color Graphics 
Printer (Near Letter Quality Mode) Showing Results 
of PC Magazine Printer Test 


66 


PC Tech Journal 






















THE 


8" DISKETTE SYSTEM FOR THE IBM PC 

8" Diskette file exchange between the IBM PC and 
most micro-mini-mainframe computer systems. 

8" Diskette text document exchange between the 
IBM PC and many word processing systems. 

8" Diskette to SV 4 " formats for hundreds of other 
systems, even Textpack and Wordstar to the new 
DisplayWrite 2 format. 

FLAGSTAFF ENGINEERING / P. O. Box 1970 / Flagstaff, AZ 86002 
Telephone 602-774-5188 / Telex 705609 FLAG-END-UD 


CIRCLE NO. 213 ON READER SERVICE CARD 





Printers 


ABBREV 

MEANING 

DECIMAL CODE 

BEL 

Bell 

7 

BS 

Backspace 

8 

CAN 

Clear Buffer 

24 

CR 

Carriage return 

13 

DEL 

Delete character 

127 

ESC 

Escape character 

27 

FF 

Form feed 

12 

HT 

Horizontal tab 

9 

LF 

Line feed 

10 

NUL 

Null character 

0 

vt 

Vertical tab 

11 

( 1 

Choice of possible values 



Repeated 



Table 1: Abbreviation Key to Tables 2, 3, and 4 


FUNCTION 

BIT IMAGE GRAPHICS 

ASCII CODE 

Double-speed, medium-density graphics 

ESC Y length_word data. . 

♦Low-density graphics 

ESC K length_word data. . 

Medium-density graphics 

FORMAT CONTROL 

ESC L length_\yord data. . 

♦Horizontal tab 

HT 

♦Horizontal tab set 

ESC D positions. . NUL 

♦Form feed 

FF 

♦Set form length in lines 

ESC C number_of_lines 

Set form length in inches 

ESC C NUL number of inches 

♦Vertical tab 

VT 

♦Vertical tab set 

LINE SPACING 

ESC B positions. . NUL 

♦Set line spacing to 1/8 inch 

(1/9 inch on IBM Compact Printer) 

ESCO 

♦Set line spacing to 7/72 inch 

(1/12 inch on IBM Color Printer, 

1/9 inch on IBM Compact Printer) 

ESC 1 

♦Set line spacing to 1/6 inch 

MISCELLANEOUS 

ESC 2 

Bell 

BEL 

♦Carriage return 

CR 

♦Null 

NUL 

♦Print left-to-right for one line 

ESC < 

Unidirectional print start/end 

PAPER FEED EXECUTION 

ESCU {0, 1} 

♦Line feed 

LF 

♦Perforation-skip mode cancel 

ESCO 

♦Perforation-skip mode set 

ESC N number_of_lines 

PRINT MODES 


♦Compressed mode cancel 

DC2 

♦Compressed mode set 

SI 

Double-strike mode cancel 

ESC H 

Double-strike mode set 

ESCG 

Emphasized mode cancel 

ESC F 

Emphasized mode set 

ESCE 

♦Enlarged mode cancel 

DC4 

♦Enlarged mode set/cancel 

ESC W {0, 1} 

♦Enlarged mode set 

SO 

Superscript/subscript mode cancel 

ESCT 

Superscript/subscript mode set 

ESC S {0, 1} 

♦Underlined mode set/cancel 
*compatible with IBM Compact Printer 

ESC - {0, 1} 


Table 2: Functions Common to Epson FX-80, IBM Graphics, and 
IBM Color Printers 


FAST 

LETTER 
QUALITY 
FOR YOUR 

EPSON 

Now you can print letter quality on 
your Epson FX printer at full text¬ 
mode speed, up to 10 tinnes faster 
than with programs using graphics 
mode. Printer Boss'^'^ software 
gives you two-pass dot-matrix let¬ 
ter quality and lets you create a 
printer buffer of up to 32K. Or print 
multi-page spreadsheets as wide 
as you like, sideways on your paper, 
at high speed, in a choice of five dif¬ 
ferent type sizes. 

Printer Boss'^^ also allows full 
menu-based operation of all control 
functions of all of the Epson MX, FX 
and RX printers. Select and de¬ 
select pica, elite, compressed, italic, 
enlarged, emphasized, doublestrike, 
underline, superscript and subscript 
for scores of different faces. Set line 
spacing, right and left margins and 
skip-over-perforation. Load USA, 
France, Germany, England, Den¬ 
mark, Sweden, Italy, Spain and 
Japan language sets. Control unidi¬ 
rectional, half-speed and proportion¬ 
ally-spaced printing. Store and re¬ 
trieve 10 complete menu settings 
with a few keystrokes. Emulate the 
IBM-label printer for the IBM-PC 
while retaining full printer versatility. 
Download to FX printers five dif¬ 
ferent IBM character sets, includ¬ 
ing graphics symbols, greek sym¬ 
bols, screen and APL characters. 
Print at full text-mode speed. Ideal 
for IBM graphics software, or 
screen dumps, or printing text from 
Wordstar, Lotus 123 or many other 
fine programs. 

Printer Boss^m for the IBM-PC and 
compatibles $59.95. With Letter 
Boss™ letter quality or Sidekick™ 
sideways print option $99.95. With 
both $139.95. Visa, MC, or send 
check. Free info. Dealers welcome. 

Printer Boss"" 

CONNECTICUT SOFTWARE 
30 WILSON AVENUE 
ROWAYTON CT 06853 
203-838-1844 

SIDEKICK IS NOT TO BE CONFUSED WITH SIDE¬ 
WAYS. A TRADEMARK OF FUNK SOFTWARE. PRINT¬ 
ER BOSS. LETTER BOSS AND SIDEKICK ARE TRADE¬ 
MARKS OF SPEER RESEARCH CORPORATION. 
WORDSTAR AND LOTUS 123 ARE TFIADEMARKS OF 
MICROPRO INT'LCORPAND LOTUS DEVELOPMENT 
CORP RESPECTIVELY. 


that it is easy to use and inexpen¬ 
sive. If the problems inherent to 
thermal printing are ignored, it is 
an attractive printer. 

Color Graphics Printer 

The IBM Color Graphics Printer 
was designed with performance, not 


cost-consciousness, in mind. It is a 
rugged machine; its case is made 
with surprisingly strong (6-milli¬ 
meter-thick) plastic, and the entire 
print mechanism is built on a 
sturdy metal frame (see photo 2). 
The print-head-positioning motor is 
large (9 centimeters in diameter. 


CIRCLE NO. 235 ON READER SERVICE CARD 


PC Tech Journal 













compared to 3.5 centimeters for the 
motor on the Epson FX-80). In short, 
the IBM Color Graphics Printer is 
built like a tank. 

On the front of the printer is a 
group of buttons for manual control 
of printer functions, including line 
feed, form feed, top-of-page set, 
printer test, and power on/off. Be¬ 
low this is a slot for inserting single 
sheets of paper into the printer,- 
continuous-form paper is fed 
through a slot located underneath 
the printer. The Color Graphics 
Printer can handle standard and 
wide (up to 30.5-centimeter) forms 
with its fully adjustable tractors. 

On the inside front wall of the 
printer are the DIP switches, which 
control character set, line spacing, 
perforation-skip mode, automatic 
line-feed mode, line width, page 
length, print quality, and other 
functions. They can be reached by 
simply raising the access cover. A 
fuse, located on the rear panel of 
the printer, is as easily accessible 
as the DIP switches. 

By far the most interesting fea¬ 
ture of the Color Graphics Printer is 
its ability to print text and graphics 
in red, blue, yellow, black, and any 
combination thereof. This capability 
is achieved through the use of a 
multicolored ribbon and a mecha¬ 
nism that controls which part of the 
ribbon is in front of the print head 
at any time. Although no software 
is included with the printer to test 
its color graphics, its use of standard 
Epson bit image graphics control 
codes makes custom programming 
quite easy to do. However, a simple 
screen-print utility would have been 
a welcome (and impressive) addition 
to the standard features of the Color 
Graphics Printer. Alas. 

Another impressive feature of 
this printer is its print quality. The 
printer will produce text compara¬ 
ble to that of the Epson FX-80 at 200 
characters per second (see figure 1), 
and by sending a control code (or 
setting one of the DIP switches), 
two other print-quality levels can be 


September i984 


NEW From The Makers Of pr'and " 



The Unique Keyboard Utility with: 

• ONLINE MACRO LISTING 

(See a listing of your macros at any time - instantly!) 

• ONLINE FULL SCREEN MACRO EDITOR 

Create or Modify your macros from within your favorite software programs. 


• USER DESIGNABLE HELP MENU CREATION 

Quickly and easily create your own help menus that can be displayed within 
your programs. 

KEYSWAP 3.0 is the most advanced macro processor available for the IBM 
PC, XT and COMPATIBLES! - Includes ALL OF PROKEY’S FUNCTIONS and 
many more. 

KEYSWAP 3.0 is the macro processor that can add a new dimension in 
USERFRIENDLINESS to your PC. 


WITH KEYSWAP 3.0 YOU CAN: 

Record a series of complicated keystrokes used to invoke and set up a 
program for data entry. 

Condense many time consuming keystrokes into just one. 

Create “lessons” that can be played back at variable speed for tutorial or 
demo purposes. 

Create a single macro definition as large as 64K. 

Redefine any keys (I.e. shift) or define any macro character. 

IMAGINE: Automatic time and date display; fixed and variable definition fields; 
audible feedback on toggle keys; alternate cursor control selection, and 
keyboard customization. 

KEYSWAP 3.0 - State of the art keyboard utility software. For the 
IBM PC, XT, and IBM COMPATIBLES. 

PRICE: $119.00 (RETAIL) 

+ 2.50 Shipping & Handling. MA res add 5% Sis. TX. 

SPECIAL OFFER: 

TRADE IN YOUR OLD MACRO PROGRAMS: 

KEYSWAP (PER), PROKEY*, etc. 

(Call or write for details) 

RICKERDATA 

P.O. Box 998, Melrose, MA 02176 (617) 662-0856 
MC & VISA ACCEPTED 

•Registered Trademark RoseSoft ** Registered Trademark IBM 


J 


CIRCLE NO. 150 ON READER SERVICE CARD 













Printers 


FUNCTION 

EPSON FX-80 

IBM GRAPHICS 

IBM COLOR 

BIT IMAGE GRAPHICS 




8-pin graphics 

ESC ♦ graphics__mode (0-6) 




length word data. 



9-pin graphics 

ESC ® (0, 1} length word data. 



High-density graphics 

ESC Z length word data. 


ESC Z length__word data. 

DOWNLOADABLE 




CHARACTER 




SET CONTROL 




Copy ROM fonts to download 

ESC : NUL NUL NUL 



area 




Define download character 

ESC & NUL data. 



generator 

Select internal/download 

ESC& {0, 1} NUL 



generator 




FORMAT CONTROL 




Automatic right justify 



ESCM {0, 1} 

Backspace 

BS 


BS 

*Clear tabs 



ESCR 

Column width set 

ESC Q number of characters 



Left margin set 

ESC 1 number of spaces 



Margin set 



ESC X left margin right margin 

Set line spacing to n/72 inch 

ESC An 

ESC An 

ESC A n ESC 2 

0 <= n < = 85 




Set line spacing to n/144 inch 



ESC3n 

Set line spacing to n/216 inch 

ESC3n 

ESC3n 


Top of page set 



ESC 4 

Variable forward space n/120 



ESC d n (2 bytes) 

inch 




Variable reverse space 



ESC e n (2 bytes) 

VFU channel select 

ESC / channel (0-7) 



VFU position set 

ESC b channel (0-7) 




positions. . NUL 



INPUT DATA CONTROL 




Bit 7 = one 

ESC > 



Bit 7 = zero 

ESC == 



Bit 7 control cancel 

ESC# 



♦Clear buffer 

CAN 

CAN 

CAN 

Clear last byte in buffer 

DEL 



Control code character set select 

ESC 7 

ESC 7 


Print characters above 128 

ESC 6 

ESC 6 


Print characters below 32 



ESC \ number of chars (2 bytes) 

Print a character below 32 



ESC ° 

Printer deselect 

DC3 


DC3 




ESCQ2 

Printer select 

DCl 


DCl 

Undefined area as 

ESC I {0, 1} 



control/printable 




MISCELLANEOUS 




Aspect ratio set 



ESCn {0, 1} 

(0 = 5:6, 1 = 1:1) 




Automatic ribbon hand shift 



ESC a 

Control value data type select 



ESC® {0, 1} 

Half-speed printing cancel/select 

ESCs {0,1} 



Immediates print cancel/select 

ESCi {0, 1} 



Initialize printer 

ESC@ 



Initialize signal function set 



ESC? {0, 1} 

International character set select 

ESC R character_set (0-8) 



Ribbon band 1 select 



ESCy 

Ribbon band 2 select 



ESC m 

Ribbon band 3 select 



ESCc 

Ribbon band 4 select 



ESCb 

PAPER FEED EXECUTION 




Forward feed n/144 inch 



ESCf n 

Forward feed n/216 inch 

ESC J n_ 

ESC f n_ 


Reverse feed n/216 inch 

ESC j n_ 

ESC j n_ 


Reverse feed one line 



ESC] 

PRINT MODES 




Character set 1 select 



ESC 7 

Character set 2 select 



ESC 6 

Compressed mode select 

ESC SI 


ESC SI 

Elite mode select 

ESCM 


ESC : 

Elite mode deselect 

ESCP 



Enlarged mode select 

ESC SO 


ESC SO 

Italic mode deselect 

ESCS 



Italic mode select 

ESC 4 



Print mode select 

ESC ! print_mode (0-63) 



Printing quality select 



ESC I print quality (1-3) 

Proportional spacing set/cancel 

ESCp {0, 1} 


ESCP {0, 1} 

^compatible with IBM Compact Printer 





Table 3: Functions DifEering among Epson FX-80, IBM Graphics, and IBM Color Printers 


70 


PC Tech Journal 













"There’s no magic to usingyour 
personal computer for data acquisition.” 


There’s no trick to it. 

It’s as easy as calling Data Translation. 

So take your choice of our new single board 
plug-ins and bring complete analog and digital I/O 
capabilities to your personal computer. 

Whether you’re working in laboratory 
research or industrial process control, our single 
boards can give you measurement and control 
capabilities without having to spend big bucks. 

And who knows that better than the lead¬ 
ing supplier of low cost data acquisition boards, 
systems, and software? 

Our boards include multi-channel A/D 
with programmable gain, D/A, digital I/O, a pro¬ 
grammable clock and many have direct memory 
access capabilities. With power and performance 
to match your PC, our analog interfaces provide 
12,14, or 16-bit A/D resolution and direct con¬ 
nection for high or low level signal inputs. 

And these boards are easy to use. They 
plug into the PC’s bacl^lane. No messy external 
lx)xes or cables. User input connections are 
simple with our compatible line of screw termi¬ 
nal panels for all of the PO capabilities. 

And comprehensive user manuals with 


DATA ACQUISITION FOR PC’S 


12-BIT 

12-BIT 

DIGITAL 

PROG. 

SOFTWARE 


A/D 

D/A 

I/O 

CLOCK 

LIBRARY 

IBM PC ™ 

X 

X 

X 

X 

X 

APPLE II™ 

X 



X 


Tl PROFESSIONAL™ 

X 

X 

X 

X 

X 

DEC RAINBOW™ 

X 

X 

X 

X 

X 

COMPAQ™ Portable 

X 

X 

X 

X 

X 




Fred Molinari, President 



many programming examples get you up and running fast. 

These easy to use, and easy to program boards are 
highly reliable at a very low cost, and of course fully backed 
by Data Translation’s service and support team. 

So why look any further? No other analog TO systems 
can offer PC users such quality, 
power and performance for such 
a reasonable price. 

But you probably expected 
that. After all, making data 
tion easy is what we’re all about. 

And that’s no illusion. 


Call (617) 481-3700. 

CIRCLE NO. 139 ON READER SERVICE CARD 
Data Translation is the leading supplier 
of personal computer hardware and software 
for data acquisition and control. 


See our 

supplement in Gold 
1984, Vol. Ill, and our 336 pg. 
catalog/handbook in Gold 
Book 1983. 


EMlATRANSLAnON 




World Headquarters: Data Translation, Inc., 100 Locke Dr., Marlboro, MA 01752 (617) 481-3700 Tlx 951-646. 

European Headquarters: Data Translation, Ltd., 430 Bath Rd., Slough, Berkshire SLI 6BB England (06286) 3412 Tlx 849-862. 

\BN\ PC is a registered trademark of IBM. Apple II is a registered trademark of Apple Computer Corp. Tl Professional is a registered trademark of Texas Instruments, Inc. 
DEC Rainbow is a registered trademark of Digital Equipment Corp. COMPAQ is a registered trademark of COMPAQ Computer Corp. 






















Printers 


chosen. The Text Quality mode 
(figure 2) produces print only slight¬ 
ly better than the Epson; the Near 
Letter Quality mode (figure 3) pro¬ 
duces text almost indistinguishable 
from that of a typewriter. In this 
mode, the print head makes two 
passes over every line. This slows 
the printer considerably, but the re¬ 
sults are well worth the wait. The 


printer also has a proportional print 
mode that can be used in conjunc¬ 
tion with any of the print modes. 

The documentation included 
with the Color Graphics Printer is 
149 pages long, designed to be in¬ 
serted in the Guide to Operations. It 
is complete, well-written, and in¬ 
cludes detailed information on 
every aspect of the printer. The in- 


DEVELOP BETTER SOFTWARE 
FASTER 

WITH AKdu«/i Scthuo/ici 


PROGRAM 

DEVELOPMENT TOOL 
(PDT-PC) 


for IBM-PC* and Compatibles 



PDT-PC TRANSFORMS YOUR IBM-PC/XT INTO THE MOST POWERFUL 
DEBUGGING AND ANALYSIS TOOL AVAILABLE FOR THE PC ENVIRONMENT: 

• SYMBOLIC DEBUGGING AND ANALYSIS 
• • LOCAL AND GLOBAL SYMBOLS 

•• HIGH-LEVEL LANGUAGE LINE NUMBERS 

•• FULL SYMBOLIC SUPPORT FOR OVERLAYS AND CODE MODULES 

• SUPPORTS BOTH INTEL AND PC-DOS OBJECT MODULE FORMATS 

• DISPLAY BUFFER TO RECALL UP TO 200 LINES OF INFORMATION 

• INTUITIVE HUMAN INTERFACE 

• REAL-TIME PROGRAM EXECUTION MEASUREMENT 

• REAL-TIME MEMORY UTILIZATION MEASUREMENT 

• STANDARD IN-CIRCUIT EMULATOR FEATURES 


ONLY THE PDT-PC INTEGRATES A FULL-FEATURED DEBUGGER WITH AN 8088 
EMULATOR AND PERFORMANCE ANALYSIS, PROVIDING A SINGLE ANSWER TO 
YOUR MOST DIFFICULT SOFTWARE DEVELOPMENT PROBLEMS!!! 


I\l/(AlVCfV 20863 Stevens Creek Blvd., B2-C, Cupertino, CA 95014 

Corporation ^ ^ 


•IBM-PC is a registered trademark of International Business Machines Corporation 


CIRCLE NO. 206 ON READER SERVICE CARD 


stallation and operation sections 
have many clear illustrations. Com¬ 
plete technical information, includ¬ 
ing a list of the printer control codes 
and their functions, a chart explain¬ 
ing DIP switch settings, and a com¬ 
plete list of all printable characters 
(the Color Graphics Printer can 
print every symbol in the PC char¬ 
acter set), is provided. A quick refer¬ 
ence card would be a handy addi¬ 
tion to the documentation, consider¬ 
ing the complexity and flexibility of 
the control code set. 

The Color Graphics Printer is 
supplied with a diagnostics package 
identical to that included in the 
Guide to Operations except that it 
has been updated to test the Color 
Graphics Printer, as well as the IBM 
Matrix and IBM Graphics printers. 
A complete replacement for the 
Problem Determination Procedures 
section of the Guide to Operations 
is supplied with this software. Un¬ 
fortunately, the program tests only 
the printer's ability to print text, 
not graphics, in multiple colors. 

Compatibility with Other 
Epson and IBM Printers 

Control code compatibility is a 
major issue in designing printers. 
IBM has chosen to maintain as 
much compatibility as possible with 
its earlier printers (which were 
made by Epson and therefore used 
Epson's control codes). By doing 
this, IBM has ensured that software 
authors will not have to rewrite 
code entirely to make it work on 
more than one IBM printer. This is 
good for the programmer,- it is also 
good for IBM, because it makes it 
easier for software authors to sup¬ 
port IBM's printers (see my article, 
"Epson Technical Comparison," PC 
Tech Journal, September/October 
1983, page 130, for more on printer 
compatibility issues). 

Table 1 lists all control codes 
that can be used without modifica¬ 
tion on the Epson FX-80, the IBM 
Graphics, and the IBM Color 
Graphics printers. Functions that 


72 


PC Tech Journal 













fcpoint encountered, CS’ IP:. .f1EMOfiY_TESTERI100 
OP 

R CODE OPERAND!S) 


B JMP $+0082 
10RY_TESTERI99- 
D ADD WORD PTR IF5B2J.0040 


;. .riEH0RY_TESTERI99 
;.nEnADDR+0002 


READ - DS 
3 READ - DS - 10 

I WRITE - DS - 40 

3 WRITE - DS - 10 

LOCAL UARIABLES OH THE STACK 
JFFER : 09D3;0000 BUFFERLEHGTH -- 001F 
BUFFER CONTENTS 


SS:09D3 DS:09D3 ES:1000 
SP:F580 SI:F5B8 DI:09D3 
BP:F580 

FL: 00 D0 II T0 S0 Z0 A0 P0 C0 


0010 

80 00 00 

IA5 

CS:0632 

IFF 

1P--01C2 

106 


100 



s PC Probe Version X103 


(OCopvright Atron Corp. 1983, 1984 



ATRON Announces 
A State of the Art Advance in 
Source Level Software Debugging 


PROGRAMMERS AND 
MANAGERS know that finding bugs 
during new product development and 
over the entire product life cycle adds up 
to a significant portion of total product 
development cost and support time. 
Investing in the right debugging tools will 
greatly improve time to market as well as 
minimize development cost. Atron Corp. 
has the right debugging tools for the PC 
environment. These are: 

1) PC PROBE 

2) SOURCE PROBE 

3) PERFORMANCE ANALYZER 

These tools run on a PC or compatible. 

A Snapshot of Real Time 
Program Execution 

Program flow is saved in trace memory 
while running at full speed. PC PROBE 
can display trace data as high level 
language source code or as 8088 
instructions. Real time trace answers 
the question “How did I get here”? 

A Bullet of Proof Debugger 

What good is a debugger that can be 
wiped out by an undebugged program? 
PROBE software is write protected and 
can't be changed. 


Trap Memory 

The PC PROBE has 8 breakpoints and 
can trap conditions such as instruction 
execution, read, write, 10, DMA. interrupt, 
or external logic probes. Breakpoints can 
also be set on ranges of address or 
data — symbolically too! 

Don’t Look in the Manual 

The PC PROBE designers know the 
importance of EASE OF USE. The PC 
PROBE interface has a menu window 
which displays the syntax of each 
command — so you never have to 
remember how a command works. It also 
recalls the previous invocation of each 
command to save tedious typing — and 
tedious thinking! 

Symbolic Debugging 

Avoid the tedium of sifting through link 
maps to find out where things are. The 
PC PROBE uses your C. PASCAL, or 
assembly language program symbols. 

Macro Commands 

Why be limited by a fixed set of de¬ 
bugging commands? PC PROBE lets you 
create your own powerful macro 
commands with parameter passing, nest¬ 
ing. LOOPING and IF/THEN/ELSE 
control. 


ANNOUNCING 
SOURCE PROBE 

Why waste time with a debugger which 
shows your C or PASCAL programs in 
8088 assembly language. Atron’s new 
SOURCE PROBE let’s you step, real time 
trace, and edit your Hi Level source code 
during debug. Display data structures in 
the format which your program uses. 

PERFORMANCE 

ANALYZER 

How do you find time critical program 
problerris or know where to start 
performance tuning your software? Get 
Atron’s new Software Performance and 
Timing Analyzer. Then you can display 
historgrams of how your programs run — 
by time or by events. You can perform 
many different timing measurements. 

Atron has many happy customers who 
have made critical product schedules 
because of PC PROBE. Why waste time 
on primitive debugging techniques? — 
Call us today and ask for your 12-page 
data sheet. 


20665 FOURTH STREET • SARATOGA, CA 95070 • (408) 741-5900 


CIRCLE NO. 107 ON READER SERVICE CARD 









SS 3 HS 




oftefs 


the 


CO^-P^BOO^!’ 

'^ccT 80®^ ^ -^nle, 

Busf^ 
tists - 


auge 


esspeoPL®s 
®who 


iei» •^cient'S^"’onvone our 


» 5 i%sr# 35 ’ 

spe®^, QoraP®^iJes 6® ^o^ratio^a '^ 
tod^V ^1, nfovid -y op^f ^ 

Mat" fwgh aaffuWracfas 
addiV?:®'n sq^a^® Qpential 


e cu^- ^** the 8°®^ 
qoui' 9® ,ice 0^ 

librarians the ® pjp, we 
ExP®[! process®^ d acc®J.||fation 
NaP’®/«nsiveiV i®fh^pak- 

SiaS-|?feC"tran 

sSH„r8^trfa-""^ 

tions- jpst^ll 

pent MatP Pl'forthe 1B^^ 


curse!)-, 


the 

coif* 


IBM jfjf'%^ 
^®SoN: Higr’ 

the. 


Math. 

intertap?., 


The SOSjj^g Library 


cludihPn d'''''®'metric. 
a''?“H3uPP|i;VaPa|,TBANa"J 


•S^ruPrarv'o' 


The, 
8087 


MalP /pascal the 


the IB!^ 

■&fTBAN UagV^rv fo- 
FOB/Macro L'i:,pr . _ , on® 


ibm 


,,,s. 

. $ 175 ; 

f T.<S;,:„g.loa '« ,180. 

"•""^TWABE P**; agd s<.a'« 

«7 SOP^'':rall 

? DisK^"* ”" ,„st™=a°;;u 

' r">f saCa'a UP-'' ,,45. 




and Matt; 

•’hier The 8^5 do a®' 

mhia';,rnararas^j^an- 


B^^rO Assea"^e• nfogr^'g advaa; 

f^e o' 'pa !° NOW,^"lPaniPUia^ASIC. f 




goftwara 

£re a? f° 

will pa ^.LU0,||„>VoRfB» 




IBM , 
rripie*® 


the "P"-,g op®^‘ 
CO ' 


g,SS 5 ' 


aPfpSpaooi 





Micro 


Sourc® 
13029 


on'''»^""'",5.560-3W7 

„ bbao; 


X3 


613 


-829 


1-9165 


K^anaW. 


805^ 


THe/*®yi'„,4.the 




»th r^1- N°"|J!i7 ApV**'°"* 
«V.ol. •»«”•"' 


Start** 


CIRCLE NO. 145 ON READER SERVICE CARD 



Printers 


FUNCTION 

BIT IMAGE GRAPHICS 

ASCII CODE 

* Low-density graphics 

FORMAT CONTROL 

ESC K length_word data. 

Clear tabs 

ESCR 

*Form feed 

FF 

♦Horizontal tab 

HT 

♦Horizontal tab set 

ESC D positions. . NUL 

♦Set form length in lines 

ESC C number of lines 

♦Vertical tab 

VT 

♦Vertical tab set 

INPUT DATA CONTROL 

ESC B positions. . NUL 

♦Clear buffer 

LINE SPACING 

CAN 

♦Set line spacing to 1/9 inch 
(1/8 inch on other printers) 

ESCO 

♦Set line spacing to 1/9 inch 

(1/12 inch on Color,- 7/72 on others) 

ESC 1 

♦Set line spacing to 1/6 inch 

MISCELLANEOUS 

ESC 2 

♦Carriage return 

CR 

♦Null 

NUL 

♦Print left-to-right for one line 

PAPER FEED EXECUTION 

ESC < 

♦Line feed 

LF 

♦Perforation-skip mode cancel 

ESCO 

♦Perforation-skip mode set 

ESC N number of lines 

Set automatic linefeed mode 

PRINT MODES 

ESC 5 

♦Compressed mode cancel 

DC2 

♦Compressed mode set 

SI 

♦Enlarged mode cancel 

DC4 

♦Enlarged mode set/cancel 

ESC W {0, n 

♦Enlarged mode set 

SO 

♦Underlined mode set/cancel 

ESC-{0,1} 

^compatible with Epson FX-80, IBM Graphics, and IBM Color printers 


Table 4: Functions Available in the IBM Compact Printer 


will also work on the PC Compact 
Printer are clearly marked. Table 2 
lists functions that cannot be used 
on all three printers; table 3 lists the 
subset of functions available on the 
PC Compact Printer. All but two of 
these codes are compatible with the 
Epson FX-80, IBM Graphics, and 
IBM Color Graphics printers. 

The Color Graphics Printer has 
all the major features of the Epson 
FX-80 save one: character sets that 
can be downloaded. Except for this, 
the Color Graphics Printer builds 
upon the functions of other print¬ 
ers, with new codes to control rib¬ 
bon bands and print quality. 

The control-code set of the PC 
Compact Printer, on the other hand, 
is a stripped-down version of that 
used in earlier Epson and IBM 
printers. The PC Compact Printer 
can handle all of the important text¬ 
handling functions of other printers 
and has low-density graphics as 
well, but its repertoire does not ex¬ 
tend far beyond this. 


Two Markets Addressed 

Both the PC Compact Printer and 
the Color Graphics Printer address a 
specific part of the printer market¬ 
place. The PC Compact printer is 
designed for home use, and is there¬ 
fore less expensive and less capable 
than other printers. The Color 
Graphics Printer, on the other hand, 
is designed with quality (and color 
graphics) in mind, and is best suited 
for business and professional use. 
IBM has attempted to maintain con¬ 
trol-code compatibility with its 
other printers, and although it sacri¬ 
ficed some with the PC Compact, it 
has been largely successful. I"'!—i 

IBM PC Compact Printer: $175 
IBM Color Graphics Printer: $1,995 
IBM 

P.0, Box 1328 

Boca Raton, FL 33432 

(800-447-4700) 

CIRCLE 500 ON READER SERVICE CARD 


My Programs Always 
Compile the FirsTime™ 

Yours can too! 

FirsTime is an intelligent editor that 
knows the rules of the language being 
programmed. It checks your statements 
as you enter them, and if it spots a mis¬ 
take, it identifies it. FirsTime then posi¬ 
tions the cursor over the error so you 
can correct it easily. FirsTime mill iden¬ 
tify all syntax errors, undefined varia¬ 
bles, and even statements with mis¬ 
matched variable types. In fact, any 
program developed with the FirsTime 
editor will compile on the first try. 

Unprecedented 

FirsTime has many unique features 
found in no other editor. These powerful 
capabilities include a zoom command 
that allows you to examine the struc¬ 
ture of your program, automatic pro¬ 
gram formatting, and block transforms. 

If you wish, you can work even faster 
by automatically generating program 
structures with a single key-stroke. This 
feature is especially useful to those 
learning a new language, or to those 
who often switch between different 
languages. 

Other Features: Full screen editing, 
horizontal scrolling, function keys 
labeled on screen, help screens, inserts, 
deletes, appends, searches, and global 
replacing. 

Programmers enjoy using FirsTime, 
because its powerful features allow 
them to concentrate on the program 
logic without having to worry about cod¬ 
ing details. Debugging is reduced dram¬ 
atically, and deadlines are more easily 
met. 

The Spruce FirsTime editor is imme¬ 
diately available for PASCAL ($245) 
and C ($295) on the IBM Personal 
Computer and its compatibles. A dem¬ 
onstration disk is available for $25. (N.J. 
residents please add 6% sales tax.) 

For programs that compile the 
FirsTime. 


To order, call or send check to; 

Spruce 

Technology Corporation 

110 Whispering Pines Drive 
Lincroft, N.J. 07738 
(201) 741-8188 or (201) 663-0063 

Dealer enquiries welcome. Custom versions 
for computer manufacturers and language 
developers are available. 

FirstTime is a trademark of Spruce Technology 
Corporation. 


CIRCLE NO. 132 ON READER SERVICE CARD 


September i984 


75 














Everything yen need 


SOFTWARE 

ApTec (for color Prism Printers) 

Rainbow Writer Color Text Formatter . .$119. 


Rainbow Writer Screen Grabber . 69 

Ashton Tate 

dBase II. 289 

dBase III. 375 

Upgrade (dBase II to dBase III) . 139. 

Framework. 375. 

Friday!. 169 

Reference Encyclopedia (book) . 55 

Best Programs 

PC/Personal Finance Program . 65 

PC/Professional Finance Program II .,. 169 

PC/Fixed Asset System . 297 

PC/Tax Cut. 175 

Bible Research 

THE WORD fKJt/e/b/e - 7 d/sks; ... 145 

Bruce & James 

Word Vision. 39 

Digital Research 

CP/M-86 . 39. 

Dr. LOGO (requires 192k & RGB monitor) 69. 

Financier 

Financier II. 115. 

Financier Tax Series. 97. 

Funk Software 

Sideways. 45. 

Lifetree 

Volkswriter. 115. 

Volkswriter International. 135. 

Volkswriter Deluxe (with TextMerge ). .. 175. 

Lotus Development 

1-2-3 (version 1 A) . call 

Symphony. call 

Upgrade (1-2-3 to Symphony) . call 

Micropro 

WordStar & ProPak come with quick lesson 
CAI training disk and tutorial disk 

WordStar 3.3 . 235. 

ProPak (WordStarIMailMergel 

CorrectStar/StarIndex) . 359. 

Microrim 

Ribase 4000 . 297. 

Extended Report Writer. 89. 

Clout. 129. 

Microsoft 

Multiplan fver 7.2j. 139. 

Microsoft Word (ver 1.1) . 239. 

Microsoft Word with mouse (ver 1.1) .. 289. 

Microstuf 

Crosstalk XVI. 105. 

Transporter (includes Crosstalk) . 169. 

PCsoftware 

PC Crayon II (new release) . 39. 

Executive Picture Show. 139. 

CREATABASE.see special 

Peachtree 

PeachPak Series 4 (G/L, A/R, A/P) 

new version, IBM manuals . 195. 

Peter Norton 

Norton Utilities. 55. 

Satellite Software 

WordPerfect . call 

Software Publishing 

PFS/Access. 63. 

PFS/File. 89. 


PC Connection 
Software Special 

through September 31, 1984 

We’re so confident you'll be pleased with 
these programs, that we're offering to 
buy them back if you return them within 
30 days. 

PCsoftware 

Championship Blackjack 

• Realistic casino action 

• Works on monochrome display or in 
full color on TV/RGB 

• Up to 6 players (including your PC) 

• Can be used for fun or to learn point 

count statistics . $19. 

CREATABASE 

One of the few databases chosen by 
PC Magazine’s "Project Database Re¬ 
view" (June 12, 1984) as “Would Buy". 
Quoted as, "...should be the first file 
management system a PC owner 
buys." You can design your own 


screen and report layouts. $39. 


PFS/Graph . $89. 

PFS/Write . 89. 

PFS/Report . 79. 

Softword Systems 

MultiMate (w/spell checker & tutorial). .. call 

Sorcim 

Supercalc 3 . 199. 

Virtual Combinatics 

Micro Cookbook . 29. 

Warner Software 

The Desk Organizer . 197. 


TRAINING 

ATI 

How to use Lotus 1-2-3 (volumes 1 & 2) 55. 
How to use Wordstar (volumes 1 & 2).. 55. 
How to use dBase II (volumes 1 & 2) .. 55. 

How to use EasyWriter II . 55. 

How to use Multiplan . 55. 

How to use Your IBM-PC . 55. 

How to use MultiMate . 55. 

How to use Microsoft Word . 55. 

How to use PC DOS . 55. 

How to use TKI Solver . 55. 

Individual Software 

The Instructor . 35. 

Professor DOS . 47. 

Tutorial Set (both items above) . 75. 

Professor Pixel . 47. 

Typing Instructor . 39. 

Scarborough Systems (was Lightning) 
Master Type . 35. 


EDUCATIONAL 

Davidson 

Speed Reader II (high school & college) 49. 


Math Blaster (grades 1-6) . 35. 

Word Attack (grades 4-12) . 35. 

FriendlySoft 

FriendlyWare/PC Introductory Set 35 


Stone (requires graphics board) 

Great graphics and sound 

My Letters, Numbers, Words (ages 1 to 5j 29 


Kids Stuff (ages 3 to 8) . 29 

Across the U.S.A. (ages 5 & up) . 22 

GAMES 

Atarisoft 

Centipede . $29. 

Pac Man . 29. 

Dig Dug . 29. 

Defender . 29. 

Donkey Kong . 29. 

Biue Giant 

Hoser . 25. 

Broderbund 

Apple Panic . 23. 

Lode Runner . 25. 

Funtastic 

Snack Attack II (a favorite) . 27. 

Cosmic Crusader (as good as above). . 27. 

Big Top (climb to new levels) . 29. 

Master Miner (1 or 2 players) . 29. 

Hayden Software 

Sargon III. 35. 

Microsoft 

Flight Simulator (new version) . 35. 

Orion 

J-Bird . 29. 

PC-MAN . 27. 

Paratrooper . 25. 

Pits & Stones . 29. 

Sir-Tech 

Wizardry . 42. 

Sublogic 

Night Mission Pinball . 29. 


HARDWARE 

AST Research (For IBM-PC or XT) 

All AST Boards come with Super Drive. 
SuperSpool, and one year warranty. 
SixPakPlus 64k upgradeable to 384k. with 
clock calendar, serial and parallel ports 

(game port optional) . 269. 

MegaPlus ll_64k upgradeable to 256k (or 
more with MegaPak) with clock calendar 
and serial port (parallel, game, or second 

serial port optional) . 269 

M egaPak 128k (not upgradeable) . call 

MegaPak 256k . call 

I/O Pl us li with clock calendar and serial 
port (parallel, game, or second serial 

port optional) . 129. 

Parallel. Game, or se c ond Serial Po rt 

for any AST board (specify board) . 39. 

Connectall connector bracket (PC only) .19. 

AST-525J . 559. 

ASI-3780 . 649. 

MonographPlus with clock calendar, serial & 

parallel ports ... 429. 

Amdek 

Video 300G Monitor (green) . 149 

Video 300A Monitor (amber) . 159 

Video 31OA Monitor (amber) . 179 

Color II RGB Monitor . 399 

CompuCabie 

Plastic Keyboard & Drive Cover Set 17 


* DEFECTIVE SOFTWARE REPLACED IMMEDIATELY. DEFECTIVE HARDWARE REPLACED OR REPAIRED AT OUR DISCRETION SOME ITEMS H.AVE WARRANTIES UP TO FIVE YEARS, 
e COPYRIGHT MICRO CONNECTION. INC. 1984 ALL ITEMS SUBJECT TO AVAILABILITY PRICES SUBJECT TO CHANGE WITHOUT NOTICE IBM IS A REGISTERED TRADEMARK OF IBM CORP 
MICRO CONNECTION IS A TRADEMARK OF MICRO CONNECTION, INC. PC CONNECTION IS A REGISTERED TRADEMARK 






































































































to addon and dive in 


IBM Mono Screen Enhancement . $17 

Printer to IBM Cable (specify printer) ... 32. 
Smartmodem to IBM Cable . 25. 

Curtis 

Low Profile Tilt & Swivel Pedestal 

(for any monitor) . 44. 

PC Pedestal (for IBM Mono or Color). .. 55 
PCS or Quadchrome display adapter .. 9. 

System Stand (holds PC vertically) . 21. 

Extension Cables for IBM Mono Display 40. 
Keyboard Extension Cable (3 to 9 feet). 32. 


AC Plug Adapter (any monitor to your PC) 8. 


Epson 

RX-80 with GRAFTRAX-Plus . call 

RX-80 FfT with GRAFTRAX-Plus . call 

FX-80 with GRAFTRAX-Plus . call 

RX-100 with GRAFTRAX-Plus . call 

FX-100 with GRAFTRAX-Plus . call 

LQ 1500 (letter quality dot matrix) . call 

Printer to IBM Cable (specify printer ) ... 32. 
Hayes 

Smartmodem 300 . 209. 

Smartmodem 1200 . 489. 

Smartmodem 1200B (wISmartcom II) . 409. 

Smartcom II . 99 

Compucable's Smartmodem-to-IBM Cable 

. 25. 

Hercules Computer 

Hercules Graphics Card (parallel port) . 339. 
Hercules Color Card (parallel port) _ 179 

IDS 

Prism 80 Printer (v/ith all four options) . 1397. 
Prism 132 Printer (v/ith all four options) 1597. 
Prism to IBM Parallel Cable . .. 32. 

key tronic 

Deluxe keyboard (KB 5151) see special 

Koala 

Koala Touch Tablet v/ith software 
(connects to game port) . 89 

Kraft 

Joystick. 39. 

Maynard Electronics 

Floppy Drive Controller . 165. 

Internal Hard Disk (10 Meg), WS-1 Controller 

& ROM for PC mother board . 989. 

Internal Hard Disk (10 Meg), WS-2 Controller 

& ROM for PC mother board . 1169. 

Mouse Systems 

PC Mouse (w/software & desk pad). .. 197. 

NEC 

Spinwriter 3550 (IBM-PC compatible) . 1679. 
Spinwriter 2050 (3550's little brother) .. 869. 

Orchid Technologies 


All Orchid Boards come with PCnet Drive 
(Ram disk). PCnet spool (print spooling), 
disk caching & partitioning. 

Blossom Ok or Blossom 64k upgradeable 
to 384k, with clock calendar, serial and 


parallel ports . call 

PCnet Daughter Boar d (piggybacks to 
Blossom) with version 2.4 networking 
software . call 

Paradise Systems 

MultiDisplay Card (color & mono) 379. 

Plantronics/Frederick 

COLORPLUS (wIColor Magic) .... call 


PC Connection 
Hardware Special 

through September 31, 1984 

key tronic 

Deluxe 5151 keyboard 

• Typewriter keyboard 

• Has separate cursor and numeric 
keypad (makes work with spread¬ 
sheets much easier). 

• Has indicators on numlock, capslock, 
and cursor pad LED key. 

• Function keys are located at top of 

keyboard along with 2 new keys 
(pause and reset). $175. 


LIFE IN THE PC FAST LANE 

Our goal is to have what you want when you 
want it. On those rare occasions when we tell 
you we’re out of stock, it means one of several 
things. The manufacturer is out of stock. A 
new, favorable review has created heavy de¬ 
mand. An announced product is still unavail¬ 
able. Or, an updated version of the product is 
on the way, and we have no intention of selling 
an about-to-be-obsolete product (even if it 
means losing a sale). Whatever the reason, 
rest assured we’ll give as firm an availability 
date as possible. 

OUR POLICY 

• We accept VISA and MASTERCARD. 

• No surcharge added for charge cards 

• Your card is not charged until we ship. 

• No sales tax. 

•All shipments insured: no additional charge. 
•Allow 1 wk. for personal & co. checks to clear. 

• COD max. $500. Cash or certified check. 

• 120 day guarantee on all products.★ 

•To order, call us anytime Monday thru Friday 
9:00 to 9:00, or Saturday 9:00 to 5:30. 

SHIPPING 

Continental US: For monitors, printers, and 
drives, add 2% to all orders. For all other items, 
add $2 per order for UPS surface, $3 per order 
for UPS 2nd-Day-Air. We particularly 
recommend 2nd-Day-Air if you live west of the 
Mississippi or south of Virginia. In most cases it 
will only add $1 to your cost and will save you 
up to four days on delivery time. UPS Next Day 
Air also available Outside Continental US: 
We add freight charges to credit card pur¬ 
chases. For prepayment, call 603/446-3383 
for information. 

1 - 800 / 243-8088 

PC Connection 285T 

6 Mill St.. Marlow. NH 03456 
603 / 446-3383 

For the IBM-PC Exclusively. 

CIRCLE NO. 182 ON READER SERVICE CARD 


Princeton Graphics 

HX-12 RGB monitor (690 x 240)) . call 

SR-12 RGB monitor (690 x 480) . call 


MAX-12 Amber monochrome monitor .. call 

Quadram 

We are a full line Quadram Dealer 

New Expanded Quad board 64k 
expandable to 384k. with clock calendar, 
parallel, serial & game port, I/O bracket, 


and Quadmaster software. $269. 

Microfazer Printer Buffer (parallel) w/copy 

MP 64 (64k) upgradable to 512k . 197. 

Quadcolor I . 197. 

SMA(Systems Management) 


PC-Documate Keyboard Templates 

available for: 


DOS/Basic 1.1 
DOS/Basic 2.0 
Lotus 1-2-3 
dBase II 
Easywriter II 
Wordstar ... 
TG 


Multimate 
Multiplan (IBM) 
Multiplan (Microsoft) 
Peachtext 5000 
Volkswriter 
.(each)12. 


Joystick . 45. 

USI (monitors for graphics board) 

Pi-2 Monitor (12“ green, with cable) ... 119. 
Pi-3 Monitor (12" amber, with cable) .. 129. 


DRIVES 

All drives are completely pre-tested. Specify 
Drive A or Drive B for your PC. Comes with 
complete step by step installation instructions. 
Drives are 320K/360K. 

Tandon 

TM 100-2 (5 Va") full-height drive (DS.DD) 199. 

TEAC 

FD-55B (5 Va^) half-height drive (DS.DD) 
Free y cable & bracket with each pair. 169. 


MEMORY 

64k Memory Upgr a de Set for IBM-PC or 

XT system board.. ’. 59. 

64k Memory Upgrade Set for any memory 

board specify make of board . 59. 

Install memory upgrades & run diagnostics 
at time of board purchase only . 10 

DISKS 

Verbatim (with 5 year guarantee) 

Datalife Disks SS/DD plastic box of 10 .. 23 
Datalife Disks DS/DD plastic box of 10 .. 33 


Disk Drive Analyzer.25 

Flip Sort (holds 75 disks) .19 


INFORMATION SERVICES 

Compuserv 

Compuserv Information Service 
includes subscription manual, 5 hours of 
connect time, & monthly publications ... 29 

Source Telecomputing 

The Source (subscription & manual) .... 59 












































































Put the Power 
ofthelBM PC 
Bus into\bur 
OEM Svstem 


ISus 

SYSTEMS 

9235 Chesapeake Drive 
San Diego, CA 92123 


IBM PC is a trademark of IBM Corporation 


NEW Single Board 


Bus System 


The power of the IBM PC is 
now available to OEM system 
designers with the new I-Bus 
Single Board Computer 
and Enclosure 
systems. Now you 
can make use of 
that vast array of 
PC-compatible 
expansion cards— 
for communications, 
graphics, data acqui 
sition, peripheral 
control, and every 
other imaginable task. 


I-Bus Systems has 
packaged Intel’s powerful 
new 80188 CPU into a Single 
Board Computer. It has 
64K of RAM and up to 160K 
of ROM on board, plus a serial 
console port to talk to a terminal 
or a PC. Just plug the SBC into an 
I-Bus 6-slot chassis or 9-slot card 
cage and you have the heart 
of a computer system, 
ready to run. 


then download them to the I-Bus 
system for dedicated execution. 


You’ll have the best of both 
the PC world and the 
OEM bus-structured 
world with this new 
single board computer 
from I-Bus. 


For all the details, 
give us a call today 
at (800) 382-4229. 

In California, call 
(619) 569-0646. 


Then 

just add any of 
the hundreds of PC bus 
cards already on the market, to 
customize your system. 


Modular PC bus packaging matches your 
system needs, from basic cage to complete 
enclosure system. Internal 40 W power supply 
with 6-slot enclosure, external supply for the 
9-slot. 


Best of all, the IBM PC works 
perfectly as a software develop¬ 
ment system. You can assemble 
and test applications 
programs on the PC, 


CIRCLE NO. 277 ON READER SERVICE CARD 








EPSON.COM simplifies printer initialization 


Douglas Ritari 


One such solution is provided by EPSON. 
COM, a small, efficient utility program that, 
in addition to being easy to use, is only 281 
characters long (see listing 1). The program was 
designed around the Epson MX-80 command 
protocol, because of the Epson's widespread 
popularity and near-compatibility with the 
IBM graphics printer. It will work with any 
printer, however, because of a hexadecimal 
input mode that allows any set-up character 
sequence to be sent to any printer. See table 1 
for a summary of the segments, groups, and 
symbols used in the EPSON.COM program. 

Douglas Ritari is an information resource manager for 
St. Paul Fire and Marine Insurance Company in St. Paul. 
He functions as a systems analyst who specializes in 
microcomputers and office automation. 


U sers of the IBM PC are blessed by having 
access to the variety of sophisticated 
printing features offered by the new intelli¬ 
gent dot-matrix printers. Many different print 
fonts and densities are available. Few of the 
printers offer an easy method of switching to 
these different control modes, however,- conse¬ 
quently, many of the optional fonts that are 
available are used only infrequently. 

The most common way of initializing a 
computer printer is through the use of the 
BASIC/BASICA language on the PC. These 
programs take up considerable space on a dis¬ 
kette (15,000 to 25,000 characters—especially 
if they are put only on diskettes) and are not 
easy for an inexperienced person to use. 
Clearly a better solution is needed. 


September i984 


79 









EPSON.COM 

Program Operation 

The simplest way to activate the 
program is to type ''EPSON/' When 
no optional parameters are entered, 
the printer is set for the double¬ 
strike and emphasized-print font. In 
my opinion, this font produces the 
best near-letter-quality print that 
Epson-compatible printers can pro¬ 
duce. Optional parameters that may 
be entered (by typing EPSON E T, 
for example) are 

E— Emphasized printing (char¬ 
acters are thicker than 
usual) 

D—Double-strike printing 
(each character is printed 
twice in the same place) 

I— Italics 

W— Wide-character printing (5 
char/inch) 

C— Compressed-character print¬ 
ing (17.16 char/inch) 

T— Top-of-form command (ad¬ 
vances the paper to the top 
of the next logical page on 
almost all printers) 

R— Resets the printer to its 
power-up state (resets logi¬ 
cal top-of-page; eliminates 
the need to turn the printer 
off and on to reset) 

U— Unidirectional printing (the 
print head prints only from 
left to right, instead of in 
both directions; (although 
slower, this produces the 
best appearance) 

/xx/— Hexadecimal input mode 

("xx" represents paired hex¬ 
adecimal numbers that are 
sent directly to the printer 
as is, no spaces allowed) 

All other characters are ignored; 
spaces between parameters are op¬ 
tional (except in the hexadecimal 
mode) with upper- and lower-case 
letters being permissible. The Epson 
can understand a greater number of 
commands than this, but the list in¬ 
cludes most of the common ones. 

Creating the Program 

This program is intended to be as¬ 
sembled and run as a "COM" file 


using any PC-compatible assembler. 
COM programs are designed to run 
within one segment and do not in¬ 
clude a stack segment. Because 
there is no stack segment, a warning 
message will be generated by the 
linker when the program is run; 
don't be concerned about the mes¬ 
sage, as this is normal when a COM 
program is generated. 

After linking the program using 
the DOS LINK command, name it 
EPSON.EXE. Now run the IBM 


W hen no optional 
parameteis are 
entered, the 

printer is set for the double- 
strike and emphasized- 
print font. In my opinion, 
this font produces the best 
near-letter-quality print 
that Epson-compatible 
printers can produce. 


EXE2BIN command, which con¬ 
verts appropriately prepared .EXE 
files to .COM format. After 
EXE2BIN has been run, the disk 
directory will contain a file named 
EPSON.BIN. Simply rename this 
file to EPSON.COM. 

The .COM format, rather than 
the .EXE format, was used to reduce 
the program's size. The original ver¬ 
sion, which was an .EXE file, was 
over 1000 characters long. 

How It Works 

The general logic of the program 
follows these steps: 

1. Save the contents of the DS regis¬ 
ter onto the stack to return con¬ 
trol to DOS when the program 
completes (lines 34-37). 

2. Set up the Indexing registers DI 
and SI for movement of the pa¬ 
rameters entered from the Pro¬ 
gram Segment Prefix (PSP), 
which is located at offset 80H 
(lines 41-45). 


3. Check the character count of the 
parms that were entered. If the 
count equals zero, no parms were 
entered. Jump to the default rou¬ 
tine and send the printer the 
control codes for double strike/ 
emphasized print (lines 49-53). 

4. If the program has reached the 
SEAR procedure, parms were en¬ 
tered (or perhaps an extra space 
character was entered after the 
EPSON command). Examine the 
parm character and see if it was 
entered as a lower-case letter. If 
so, reduce its value by 32 to con¬ 
vert it to upper-case. Now begin 
comparing this parm character to 
the program options. If it is a "/" 
character, toggle the hexadecimal 
switch to send all valid hex char¬ 
acters directly to the printer un¬ 
til another "/" is found. If the 
parm is an E-D-C-T-R-I-U-W, 
jump to the appropriate routine 
to process this code. This routine 
continues until the count of 
parm characters reaches zero. 

The program then jumps to 
PGMEND and ends (lines 65-88). 

5. The PGMEND (program end) 
procedure will sound the print¬ 
er's bell if unpaired hexadecimal 
parms were entered. It also tests 
to see if anything was printed 
during the program. If not, the 
DEFAULT routine sends empha¬ 
size/double strike. Then a return 
command is executed to return 
control to DOS (lines 152-172). 

6 . The PASTHRU routine (lines 
99-108) is used in conjunction 
with the HEXMATH subroutine 
(lines 199-210) to convert and 
process parms into hexadecimal 
numbers. 

7. The ESCAPE subroutine is used 
to send the escape character IbH 
to the printer. Most of the prede¬ 
fined codes are initiated by send¬ 
ing first the escape character and 
then the appropriate one or two 
digits to do the print mode setup 
(lines 176-183). 

8 . The PRINTER subroutine is the 
only routine in the program 


80 


PC Tech Journal 


















that actually sends codes to the 
printer. When control passes to 
PRINTER, all the work has been 
done; the character to be printed 
is already in the AL register. The 
DOS interrupt 17H is then called 
to process the print request. 

Note-, there is no check to see if 
the routine actually worked. 
However, if the printer is off¬ 
line, no message to confuse in¬ 
experienced users will be gener¬ 
ated. The program will not crash 
the system (lines 189-195). 

9. Finally, the PARM_E through 
PARM_W routines (lines 112- 
146) process the predefined 
Epson parms into appropriate 
control codes. Note that the con¬ 
trol codes are "hard-wired"' into 
these routines instead of being 
placed in a common data area. 
Again, this was done to save 
space and to cut down the pro¬ 
gram size; it is not difficult to 
change if the user wants to cus¬ 
tom configure this program for 
another printer. 

Using the Program 

Use of the EPSON command is 
fairly straightforward if considera¬ 
tion is given to a few idiosyncrasies 
of the Epson printer and to the 
housekeeping activities of certain 
programs. First, be aware that cer¬ 
tain printing modes are incompati¬ 
ble with one another—for example, 
trying to use emphasized and com¬ 
pressed type simultaneously with an 
Epson printer will result in empha¬ 
sized font only. The EPSON.COM 
program cannot help out here, as 
the printer has the final say on 
what it will and will not accept. 

If in doubt as to which print 
mode is currently operational, do a 
reset (parm R) before issuing new 
control codes. Consult the owner's 
manual for these and other precau¬ 
tions if problems are encountered. 

Another problem that might be 
encountered with certain pro¬ 
grams—VisiCalc, for example—is 
that when the user goes to the 


YOUR CODE MAY BE WASTING ITS TIMEI 
THE PROFILER™ CAN HELP . . . 

• Statistical Execution Profiler • Time critical code optimization 

• Works with any language • Abnormal code behavior tracking 

• Completely configurable • Graphic presentation of results 

• Up to 16 partitions in RAM/ROM • Easy to use menu interface 

THE PROFILER is a software package which gives you, the programmer, a powerful 
tool for locating time consuming functions in your code and allows you to performance 
tune your program. With the THE PROFILER you can determine where to optimize 
your code for maximum benefit, then measure the results of your efforts. 

Using THE PROFILER, you can answer questions like: 

Where is my program spending its time? 

Why is my program so slow? What is it doing? 

Is my progam I/O bound? CPU bound? Are data buffers large enough? 

How much improvement did my changes make? 

THE PROFILER is completely software based and consists of a system resident driver 
and a monitor program. The memory partitions can range from 1 byte to 1 megabyte 
in size and can be anywhere in the address space. 

NO ADDITIONAL HARDWARE IS REQUIRED! 

Requires an IBM PC or compatible system with a minimum 
64k and one drive. 

THE PROFILER is available for $175.00 from DWB 
Associates or ask your software dealer. To order or for 
more information, call or write DWB Associates. VISA/MC 
accepted. Dealers welcome. 

IBM is a trademark of IBM Corp. MSDOS is a trademark of Microsoft Corp. 

THE PROFILER is a trademark of DWB Associates. 

CIRCLE NO. 216 ON READER SERVICE CARD 

CopyWrite 
backs up all 
IBM PC Software. 

There are no exceptions. Copy-protected software is copied 
readily. CopyWrite needs no connplicated parameters. 
Requirements: 

IBM Personal Computer or XT. 

64k bytes of memory, 
one diskette drive. 

CopyWrite will run faster with more 
memory or another drive. 

CopyWrite is revised monthly, to keep up with the latest in copy 
protection. You may get a new edition at any time for a $1 2 trade 
in fee. 

CopyWrite is available at a price of $50 US funds from: 

Quaid Software Limited 

620 Jarvis Street, Suite 2412 
Toronto, Ontario, Canada M4Y 2R8 
Telephone (416) 961 -8243 


00 

dwb 

Associate s 


P.O. Box 5777 
Beaverton, Oregon 97006 

(503) 629-9645 


September i984 


CIRCLE NO. 194 ON READER SERVICE CARD 


81 









EPSON.COM 


Segients and groups: 






N a • e 

Size 

align 

coibine class 

HAIN. 


0219 

PARA 

PUBLIC 

’CODE’ 

Syibols: 







N a • e 

Type 

Value 

Attr. 


BELEND .... 


L NEAR 

OIBC 

HAIN 


DEFAULT. . . . 


L NEAR 

01D5 

NAIN 


DIGITS .... 


L BYTE 

0106 

HAIN 


ESCAPE .... 


N PROC 

OlEl 

HAIN 

Length =000B 

HEX. 


L BYTE 

0107 

HAIN 


HEXHATH, . . . 


N PROC 

01F9 

HAIN 

Length =0020 

HATH2. 


L NEAR 

020C 

HAIN 


PARH. 


L BYTE 

0108 

NAIN 


PARH C . . . . 


L NEAR 

0188 

HAIN 


PARH D . . . . 


L NEAR 

0181 

HAIN 


PARH E . . . . 


L NEAR 

017A 

HAIN 


PARH I . . . . 


L NEAR 

019D 

HAIN 


PARH R . . . . 


L NEAR 

0195 

HAIN 


PARH T . . . . 


L NEAR 

018F 

HAIN 


PARH U . . . . 


L NEAR 

01A4 

HAIN 


PARH H . . . . 


L NEAR 

OIBO 

HAIN 


PASTHR2. . . . 


L NEAR 

0175 

HAIN 


PASTHRU. . . . 


L NEAR 

0165 

HAIN 


PSHEND .... 


L NEAR 

01C6 

HAIN 


PRINTER. . . . 


N PROC 

OlEC 

HAIN 

Length =000D 

SEAR. 


L NEAR 

0124 

HAIN 


SEARBX .... 


L NEAR 

015A 

HAIN 


SEARCP .... 


L NEAR 

012E 

HAIN 


SEAREN .... 


L NEAR 

015C 

HAIN 


SIXTEEN. . . . 


L BYTE 

0104 

NAIN 


SSTART .... 


L NEAR 

0109 

HAIN 


START. 


F PROC 

0100 

HAIN 

Length =00E1 

SNITCH .... 


L BYTE 

0103 

NAIN 


TESTPR .... 


L BYTE 

0105 

HAIN 


TOGGLE .... 


L NEAR 

015F 

HAIN 


Naming Severe 






Errors Errors 






0 0 






TIHE==> 19:25:29.96 






Table 1: Segments, Groups, and Symbols Used in EPSON.COM 


dBASE ir&iir 

PROGRAMMERS 

*WhyusedFLOW? 



‘PROGRAMMER: 

dFLOW your sophisticated and/or 
lengthy source code and have hard-to- 
discover typos and logic mismatches 
uncovered in seconds. 


‘PROFESSIONAL: 

Free your time for billable and 
interesting projects by having 
dFLOW catch basic coding er¬ 
rors during system develop¬ 
ment. 


YOU WILL BE AMAZED AT THE SPEED 
AND PRECISION OF dFLOW 


PRICE $50: WALLSOFT SYSTEMS INC. 

233 Broadway, Suite 869 New York, NY 10279 
MC/VISA Phone: (212) 406-7026 
® REGISTERED TRADEMARK OF ASHTON • TATE 


CIRCLE NO. 164 ON READER SERVICE CARD 


menu option to print something, 
the program resets the printer. This 
effectively wipes out any control 
codes that may have previously 
been established. Again, the EPSON 
command will not help in this case. 


Examples 

Word processing can serve as an ex¬ 
ample of the use of EPSON.COM. 
Assume that a user wants to pro¬ 
duce a document in italics. He's also 
a little concerned about producing a 


82 


PC Tech Journal 












































































■■ I 


mrmmnr^miv^ 

■I m li k ^ I' 4 
mL.^:2ULm^AJk.:3m 


INDEPENDENT STDRE IN NYC DEDICATED 
TD IBM* PC SDFTWARE AND PERIPHERALS ONLY 


BY APPOINTMENT WE DEMONSTRATE MOST OF THE PRODUCTS WE SELL. 

STORE HOURS: 9:00 A.IVI.-5:30 P.M. E.S.T. MON.-FRI. 

Saturdays closed for months of July, Aug., Sept. 
Terms, conditions and prices differ in our store. 
PC LINK, CORP. 29 WEST 38TH ST. 2ND FL., NEW YORK, NY 10018 


HELIX BUBBLE MEMORY BOARDS 


CALL 


• 512KB OF NON VOLATILE MEMORY • WORKS AS HARD DISK • WRITE-PROTECT. • UP TO 
8 TIMES FASTER THAN A FLOPPY DRIVE. • HARD DISK EMULATION. • TWO YEAR WARRANTY. 


BUSINESS SOFTWARE 


ALPHA SOFTWARE 

DATA BASE MANAGER II. $205.00 

EXECUTIVE PACKAGE. 109.00 

TYPE FACES. 89.00 

ASHTON-TATE 

dBASEIII. CALL 

FRAMEWORK. CALL 

CONTINENTAL 

HOME ACCOUNTANT PLUS. 85.00 

TAX ADVANTAGE. 45.00 

PROPERTY MANAGEMENT. 319.00 

ENERTRONICS 

ENERGRAPHICS. CALL 

FOX & GELLER 

D. GRAPH/QUICKCODE/DIUTIL. CALL 

GRAFOX. CALL 

OZ. CALL 

FRIENDLYSOFT 

FRIENDLY WRITER . 60.00 

HARVARD SOFTWARE 

HARVARD PROJECT MANAGER. CALL 

HAYES 

SMARTCOM II. 95.00 

INNOVATIVE SOFTWARE 

TIM IV. CALL 

I U S 

ACCOUNTING AR/AP/GL ea. CALL 

INVENTORY CONTROL. CALL 

ORDER ENTRY. CALL 

PAYROLL. CALL 

EASY WRITER ll/SHELLER/MAIL .... 199.00 

EASY FILER. 199.00 

EASY PLANNER. 159.00 

LOTUS DEVELOPMENT CORP. 

LOTUS 1 -2-3. (NO MAIL ORDERS).. CALL 
SYMPHONY (NO MAIL ORDERS) ... CALL 

MICRO DATA BASE 

KNOWLEDGE MAN. CALL 

MICRO PRO 

INFOSTAR. CALL 

WORDSTAR. CALL 

WORDSTAR PROFESSIONAL. CALL 

MICRORIM 

R BASE 4000 . CALL 

EXTENDED REPORT WRITER. CALL 

CLOUT (RE8.256K). CALL 

PROGRAM INTERFACE.?. CALL 

MICROSOFT 

MULTIPLAN. 129.00 

WORD. CALL 

MICROSTUFF 

CROSSTALK. 105.00 


NORTH AMERICAN BUSINESS 

MEMORY SHIFT. 69.00 

NORTON COMPUTER 

NORTON UTILITIES. 55.00 

PC SOFTWARE 

CREATABASE. 65.00 

PEARL SOFT 

PERSONAL PEARL. CALL 

ROSE SOFT 

PROKEY 3.0. 85.00 

SAWHNEY SOFTWARE 

TAX MODE. CALL 

PLAN MODE. CALL 

SOFTWARE ARTS 

TK SOLVER. 269.00 

FINANCIAL MANAGEMENT. 85.00 

MECHANICAL ENGINEERING. 85.00 

SOFTWARE SYSTEMS INC. 

MULTIMATE. 279.00 

DISK DRIVES 

PEGASUS. CALL 

QUMET142. CALL 

SYSGEN. CALL 

TANDON TM 100-2 . 200.00 

MULTIFUNCTION BOARDS 

64 RAM CHIPS. 55.00 

AST CARDS. CALL 

QUADBOARD CARD. CALL 

AMDEK MAI CARD. CALL 

PC MOUSE. CALL 

FTG LIGHTPEN. CALL 

PLANTRONICS COLOR PLUS CARD ... CALL 

HERCULES.'. CALL 

PRINCETON GRAPHICS. CALL 

ENTERTAINMENT & EDUCATION 

ACROSS THE USA. 25.00 

ATI TRAINING PACKAGES. ea. 49.00 

ATTACK ON ALTAIR. 29.00 

BIG TOP. 27.00 

CONOUEST. 29.00 

COSMIC CRUSADERS. 27.00 

DEADLINE. 37.00 

DIGGER. 29.00 

THE EXTERMINATOR. 29.00 

FLIGHT SIMULATOR-NEW VERSION .. 35.00 

FRIENDLY ARCADE. 32.00 

FRIENDLY PC INTRO SET. 32.00 

FROGGER. 25.00 

GORGON. 29.00 

HIDE & SINK. 22.00 

HI RES #4. 27.00 

KID STUFF. 32.00 

MASTER MINER. 27.00 

MOON BUGS. 29.00 

MY LETTERS. NUMBERS & WORDS ... 32.00 

PC CRAYON. 39.00 


PC TUTOR. 49.00 

PLANET FALL. 39.00 

SERPENTINE. 25.00 

SNACK ATTACK. 27.00 

SPINNAKER SERIES. CALL 

SPYDER. 29.00 

STYX. 29.00 

SUSPENDED. 39.00 

WITNESS. 39.00 

WIZARDRY. 49.00 

ZORK I, II, III. ea. 27.00 

ZURAN DEFENDER. 25.00 

ACCESSORIES 

CURTIS PRODUCTS 

DISPLAY PEDESTAL. 35.00 

MONO CABLE. 38.00 

KEYBOARD CABLE. 30.00 

SYSTEM STAND. 17.00 

KRAFT JOYSTICK. 39.00 

HAYES MACH III JOYSTICKS. 45.00 

KEYBOARD DRAWER. 75.00 

MONITORS 

AMDEK 31OA. $175.00 

COLOR II +. CALL 

PRINCETON GRAPHIC HX-12. 469.00 

SR-12. CALL 

ZENITH RGB MONITOR. 479.00 

MODEMS 

HAYES SMART MODEM. $205.00 

HAYES SMART MODEM 1200. 489.00 

HAYES SMART MODEM 1200B. 449.00 

DISKETTES 

DYSAN 

5.5. /D.D. $24.00 

D.S./D.D. 34.00 

MAXELL 

5.5. /S.D. 23.00 

D.S./D.D. 33.00 

VERBATIM (5 year warranty) 

21144 HEAD/CLEAN KIT. 10.50 

5.5. /D.D. 20.00 

D.S./D.D. 30.00 

WABASH (Lifetime Warranty) 

D.S./D.D. 25.00 

PRINTERS 

DIABLO P32 D-MATRIX. CALL 

DIABLO 630.$1699.00 

DIABLO 630 TRACTOR FEED. 249.00 

DYNAX DX-15 OR DX-25. CALL 

PROWRITER F10 . 925.00 

IDS PRISM 132 COMPLETE. 1499.00 

OKIDATA 92P. CALL 

93P. CALL 

84P. CALL 

TOSHIBA P1351 . 1499.00 

EPSON FX SERIES. CALL 

NEC 3550. CALL 

PRINTER CABLE/PARALLEL. 25.00 


CIRCLE NO. 183 ON READER SERVICE CARD 


callTOLL free 800-221-0343 JlSf'ls^a RegTstered IN NEW YORK callI-212-730-8036 


■ TERMS AND CONDITIONS - 


We reserve the right to repair, replace or return to manufacturer for repair, all goods 
acknowledged faulty or damaged on receipt by customer. Customer must call for Return 
Authorization Number before returning any goods. Prompt attention will be given to all 
damaged and faulty returned goods. Any goods returned for credit are subject to 10% 
restocking charge, plus shipping charge. No returns for credit on any software. Customer 
must deal with the manufacturer directly if the customer finds any false claims made by 


the manufacturer. All goods are shipped U.RS. only. Add 2% of price, or minimum of $3.00 for 
shipping. Shipping charges on Printers & Accessories vary. We do not ship C.O.D. Please 
allow one to two weeks for personal or corporate checks to clear. To expedite shipping send 
money order, certified cashier’s check, or charge to your VISA, MasterCard, WE DO NOT 
Add a Service Charge For Credit Card Usage. Prices subject to change without notice. 
NOT RESPONSIBLE FOR TYPOGRAPHICAL ERRORS. 














































































































































EPSON.COM 


good, solidly black type font, be¬ 
cause his ribbon is getting old and 
worn. Therefore, using the parame¬ 
ters that produce double-strike and 
italics, he enters 

EPSON ID (producing 
italic/double-strike) 

Or perhaps the user wants to ad¬ 
vance the paper to the top of the 


page and enter the WIDE print 
mode for a memo for the office bul¬ 
letin board. He types in 

EPSON t r w (producing 
Top-of-form/Reset, just to 
be safe/Wide) 

Note that the spaces between the 
parameters and the lower-case let¬ 
ters did not affect the program. 


Finally, let's imagine that a user 
decides to single-sheet feed the 
printer, but the "paper out" sensor 
keeps disabling the printer as he 
gets halfway down the page. The 
command to disable the paper-out 
sensor is not one of the predefined 
parms; however, the hexadecimal 
input option will still save the day. 
The Epson manual says that the (es¬ 
cape) sequence followed by an "8" 
will disable the paper-out sensor. 
This translates into lb38 in hexa¬ 
decimal numbers. Therefore, the 
user should type in 

EPSON/1B38/ 

and the paper-out sensor will be dis¬ 
abled until the printer is turned off 
or reset. Note that no spaces are al¬ 
lowed between the slashes and that 
only valid hex numbers 0-9 and A- 
F are allowed. (Epson-compatible 
printers will BEEP at you if un¬ 
paired or illegal numbers are en¬ 
tered). However, additional parame¬ 
ters may be entered before or after 
the slashes to advance the paper or 
set any predefined character font. 

To further simplify the process 
of entering hexadecimal characters 
(it's hard to remember many hex 
numbers), create a one-line batch 
file that will do the work for you. 
For example, a batch file entitled 
"DISABLE.BAT" could contain the 
preceding command and could be 
executed simply by typing "DIS¬ 
ABLE." Also, the AUTOEXEC.BAT 
file could contain the appropriate 
commands to automatically ini¬ 
tialize the printer upon startup. 

Conclusion 

The EPSON DOS command has 
been of great help to me and to 
other PC users over the past six 
months, both on Epsons and on a 
variety of other printers that are 
used in the office. With imagina¬ 
tion and the printer manual, the 
possible uses for this program are 
nearly unlimited. Who knows, 
maybe it will even do graphics. 



Screen Displays. Fast and Easy! 


Blaise Computing presents 
VIEW MANAGER’^-a screen 
programming system for the IBM 
personal computer and hardware 
compatibles. VIEW MANAGER’" 
speeds the creation, documen¬ 
tation, and incorporation of 
screens into programs developed 
in high level languages. Versions 
for C (Lattice, Microsoft, or 
Computer Innovations) and 
Pascal (IBM or Microsoft) are 
now available. 

VIEW MANAGER’" lets you 
create input/output screens by 
providing an integrated system 
of programs carefully construc¬ 
ted to make your screen develop¬ 
ment easy and fast. It features: 

♦ Quick creation of new 
screens and editing of exist¬ 
ing ones using an interactive 
painter efficiently storing 
screens in a screen database; 

♦ Extensive control over the for¬ 
mat of data written to and read 
from data capture fields; 


♦ Ability to create on-line help 
files as part of the screen 
system; 

♦ Automatic generation of 
screen documentation files, 
including details of formats 
for data entry fields, screen 
images, and names and sizes 
of all existing screens; 

♦ A comprehensive library of 
routines to include in your 
programs allowing full ma¬ 
nipulation of screens and the 
data that they display or cap¬ 
ture; 

♦ Royalty-free distribution of 
your commercial or in-house 
applications developed using 
VIEW MANAGER’". 

All this adds up to a produc¬ 
tivity tool no system developer in 
the C and Pascal environment 
should be without. 

$275 (Source code available 
for routine library—an addi¬ 
tional $150) 


VIEW MANAGER’* is part of the 
Blaise Computing Productivity 
Series. Other products to speed your 
development projects in C and 
Pascal include: 

TOOLS"—A library of routines for ad¬ 
vanced string handling, forms utilities, 
screen handling or more $125 


TOOLS 2’“—A library of routines for 
access to operating services of DOS 
2.0+ from within your program— 
includes memory allocation, program 
chaining, file and buffer handling $100 
EXEC’"—A program chaining dis¬ 
patcher for all DOS-executable files 
supporting a common data area $95 


BLAISE COMPUTING INC. 

2034 Blake Street Berkeley, CA 94704 
(415) 540-5441 


CIRCLE NO. 115 ON READER SERVICE CARD 


PC Tech Journal 





















Would you hire an entire band when 
all you need is one instrument? Of 
course not. 

So why use a whole orchestra of 
computers when all you need is one 
to develop software for virtually any 
type of micro-processor? 

The secret? Avocet’s family of 
cross-assemblers. With Avocet 
cross-assemblers you can develop 
software for practically every kind of 
processor — without having to 
switch to another development 
system along the way! 


Cross-Assemblers to Beat the Band! 


Avocet 

Cross-assembler 

Target 

Microprocessor 

CP/M-80 

CFyM-86 

IBM PC, MSDOS** 

XASM04 NEW 

6804 

$250.00 

$ 250.00 

XASM05 

6805 

200.00 

250.00 

XASM09 

6809 

200.00 

250.00 

XASM18 

1802/1805 

200.00 

250.00 

XASM48 

8048/8041 

200.00 

250.00 

XASM51 

8051 

200.00 

250.00 

XASM65 

6502/65C02 

200.00 

250.00 

XASM68 

6800/01, 6301 

200.00 

250.00 

XASM75 

NEC 7500 

500.00 

500.00 

XASM85 

8085 

250.00 

250.00 

XASM400 

COP400 

300.00 

300.00 

XASMF8 

F8/3870 

300.00 

300.00 

XASMZ8 

Z8 

200.00 

250.00 

XASMZ80 

Z80 

250.00 

250.00 

XMAC682 NEW 

68200 

595.00 

595.00 

XMAC68K NEW 

68000/68010 

595.00 

595.00 


Development Tools That Work 

Avocet cross-assemblers are fast, reliable 
and user-proven in over 4 years of actual 
use. Ask NASA, IBM, Xerox or the 
hundreds of other organizations that use 
them. Every time you see a new micro¬ 
processor-based product, there’s a good 
chance it was developed with Avocet 
cross-assemblers. 

Avocet cross-assemblers are easy to use. 
They run on almost any personal com¬ 
puter and process assembly language for 
the most popular microprocessor families. 

Your Computer Can Be A 
Complete Development System 

Avocet has the tools you need to enter 
and assemble your soft-ware and finally 
cast it in EPROM: 

VEDIT Text Editor makes source code 
entry a snap. Full-screen editing plus a 
TECO-like command mode for advanced 
tasks. Easy installation - INSTALL pro¬ 
gram supports over 40 terminals and 
personal computers. Customizable 
keyboard layout. CP/M-80, CP/M-86, 
MSDOS,PCDOS.$150 

EPROM Programmers let you pro¬ 
gram, verify, compare, read, display 
EPROMS but cost less because they 
communicate through your personal 
computer or terminal. No personality 
modules! On-board intelligence provides 
menu-based setup for 34 different 
EPROMS, EEPROMS and MPUs (40-pin 
devices require socket adaptors). Self- 
contained unit with internal power supply, 
RS-232 interface, Textool ZIP socket. 
Driver software (sold separately) gives 
you access to all programmer features 
through your computer, lets you down¬ 
load cross-assembler output files, copy 
EPROM to disk. 

Model 7228 Advanced Programmer 

—Supports all PROM types listed. Super¬ 
fast “adaptive” programming algorithm 
programs 2764 in 1.1 minutes. 

Model 7128 Standard Programmer — 

Lower-cost version of 7228. Supports all 
PROM types except “A” versions of 2764 
and 27128. Standard programming algo¬ 
rithm programs 2764 in 6.8 minutes. 


Model 7956 and 7956-SA Gang Pro¬ 
grammers — Similar features to 7228, 
but program as many as 8 EPROMS at 
once. 7956-SA stand-alone version copies 
from a master EPROM. 7956 lab version 
has all features of stand-alone plus RS- 
232 interface. 

EPROM: 2758, 2716, 2732, 2732A, 2764, 2764A, 
27128,27128A, 27256,2508,2516,2532,2564,68764, 
68766, 5133, 5143. CMOS: 27C16, 27C32, 27C64, 
MC6716. EEPROM: 5213, X2816A, 48016,12816A, 
5213H. MPU (w/adaptor): 8748, 8748H, 8749, 
8749H, 8741, 8742, 8751, 8755. 


7228 Advanced Programmer $ 549 

7128 Standard Programmer 429 

7956 Laboratory Gang Programmer 1099 

7956-SA Stand-Alone Gang Programmer 879 

PDV Driver Software 95 

481 8748 Family Socket Adaptor 98 

511 8751 Socket Adaptor 174 

755 8755 Socket Adaptor 135 

CABLE RS-232 Cable (specify gender) 30 


HEXTRAN Universal HEX File Con¬ 
verter — Convert assembler output to 
other formats for downloading to de¬ 
velopment systems and target boards. 
Also useful for examining object file, 
changing load addresses, extracting parts 
of files. Converts to and from Intel, 
Motorola, MOS, RCA, Fairchild, Tek¬ 
tronix, TI, Binary and HEX/ASCII Dump 
formats. For CP/M, CP/M-86, MSDOS, 
PCDOS.$250 

Ask about UNIX. 


AVOCET’S SUPERB 68000 CROSS- 
ASSEMBLER — With exhaustive field 
testing completed, our 68000 assembler 
is available for immediate shipment. 
XMAC68K supports Motorola standard 
assembly language for the 68000 and 
68010. Macros, cross-reference, struc¬ 
tured assembly statements, instruction 
optimization and more. Linker and 
librarian included. Comprehensive, well- 
written manual. XMAC682 for MK68200 
has similar features. 

Call us toll-free for some straight talk 
about development systems. 

1-800-448-8500 

(in the U.S. Except Alaska and Hawaii) 

VISA and Mastercard accepted. All popular disc formats now available 
-please specify. Prices do not include shipping and handling •• call for exact 
quotes. OEM INQUIRIES INVITED. 

^Trademark of Digital Research ‘‘Trademark of Microsoft 



AVOCET jT 
SYSTEMS INC. 


DEPT. 

804 SOUTH STATE STREET 
DOVER, DELAWARE 19901 
302-734-0151 TELEX 457210 


CIRCLE NO. 110 ON READER SERVICE CARD 










































EPSON.COM 


Listing 1 EPSON.COM 

NAME EPSON 



PAGE 55,132 



TITLE EPSON.COM 

- DOUGLAS RITARI - 12/6/83 


Itit******* ********* ****************************** ****** It******* ******** 


EPSON.COM 

- Version 

1.0 - Setup Utility for Epson Printer 


by: Douglas 

Ritari 



DATE: December 6, 1983 


********************************************************************** 


IAIN SEGMENT 

PARA PUBLIC ’CODE’ 


ORG 

lOOH 


START PROC 

FAR 



ASSUME 

CS:MAIN 



ASSUME 

DS:MAIN 



ASSUME 

SS:MAIN 



ASSUME 

ES:MAIN 



JMP 

SSTART ; 

iJUMP TO REAL START .OF PROGRAM 


************* 

INITIALIZE DATA VARIABLES ****************************** 

< 

iWITCH OB 

0 

SWITCH FOR HEX V SEQ.- EITHER '0* OR 'FFH* 

SIXTEEN DB 

16 

THE NUMBER ’IB’ USED IN HEX CONVERSION - MUL. 

TESTPR DB 

0 

SWITCH TO TEST IF ANY OUTPUT WAS PRODUCED 

DIGITS DB 

0 

NUM. OF HEX DIGITS PROCESSED - 'O' OR 

HEX DB 

0 

HEXADECIMAL ACCUMLATOR 

PARM DB 

0 

MOVE PARAMETER TO HERE - 1 BYTE AT A TIME 



k********************************* ********************** 


BEGIN PROGRAM - SAVE RETURN ADDRESS TO DOS 


***********■.********************************************************** 

SSTART: 




PUSH 

OS ; 

;SAVE PSP SEGMENT ADDRESS 


MOV 

AX,0 



PUSH 

AX ; 

;SAVE RETURN ADDRESS OFFSET (PSP + 0) 


.*************** move count of characters into PARM AREA ************** 


MOV 

SI,80H 

;S0URCE STRING OFFSET (WITHIN PSP) 


MOV 

DI,OFFSET PARM ;DEST. STRING OFFSET 


CLD 


;SET 'FORWARD' STRING OPERATIONS 


MOVSB 

DEC 

DI 

;M0VE # OF PARMS ENTERED INTO 'PARM' VARIABLE 

. ************ 

SET UP PARM FIELD'S POINTERS **************************** 


MOV 

AL.PARM 

;PUT NUMBER OF CHAR. IN PARM IN AL REGISTER 


MOV 

CX.AX 

;PUT NUMBER OF CHAR. IN PARM IN CX REGISTER 


MOV 

BX,OFFSET PARM ;P0INT TO PARMS BASE ADDRESS 


CMP 

CX,0 

;WERE 'NO' PARMS ENTERED ? 


JE 

SEAREN 

;SEND DEFAULTS - NO PARMS - END PROGRAM 

.^***************************************************1e**ic**i,************ 

; PARM(S) WERE ENTERED ■ 

- SEARCH FOR AND PROCESS PARMAMETERS 

.********************************************************************** 

SEAR: 

MOVSB 

DEC 

DI 

;READ IN PARM FROM PROG. SEGMENT PREFIX 


MOV 

AL.CBX] 

MOVE NEXT PARM TO INPUT REGISTER 


CMP 

AL,96 

96 IS THE SMALL LETTER 'A' 


JL 

SEARCP 

DO 'NOT' MODIFY THIS LETTER IF LOWER THAN 'a' 


AND 

AL,223 

REDUCE BY 32 - UNCAPS===> CAPS 

SEARCP: 

CMP 

AL,'./' 

HEX SEQUENCE BEGUN OR TERMINATED 


JE 

TOGGLE 

TURN ESCAPE SEQUENCE FLAG ON OR OFF 


MOV 

AH,0 

CLEAR AH REGISTER 


CMP 

AH,SWITCH ;IS HEX SEQUENCE OFF ? 


JNE 

PASTHRU 

PRINT CHAR.'S HEX VALUE IF,HEX SWITCH IS ON 


CMP 

AL,'E' 

PARM TO 'EMPHASIZE' ? 


JE 

PARM E . 

PARM-E ROUTINE 


CMP 

AL,'0' 

PARM TO 'DOUBLE-STRIKE' ? 


JE 

PARM_D 

JUMP TO PARM-0 ROUTINE 


CMP 

AL,'C' 

PARM TO 'COMPRESS' ? 


JE 

PARM C 

JUMP TO COMPRESS ROUTINE 


CMP 

AL,'T' 

PARM TO 'GOTO TOP-OF-FORM' ? 


WE DO WINDOWS. 


HAIM flENU DIRECTORY R: 

1) DISPr-1 BACKUSI BAT 

2) EKTE SELECT HASTER FILE | BASTEST BAS 5 

IcWllJJ-' 1) CUST i - lEST EXE 5 

41 PRIM liiajlMi! SELECT ACT!OH EST LST IZI 

5) SYST 3) UEHD 1) ADD HEW RECORD EST HAP 4' 

6) CHAH 4) DIPL . . . 

- 5) SALE 3) DELECT PRODUCT MASTER RECORD 

- 4) PERFOR 

- PRODUCT HUMBER:123456 

PROCUCT HAME: Inverted Tweaker 


714 l»-27-83 8: 

5128 9-15-83 1: 

5128 11-87-83 10: 
12032 11-07-83 9: 

4992 11-07-83 10: 


qUAirriTY OH HAHD: 10265 
REORDER POIHT: 2000 


or tijpe the ntuiker for thifraailgating 
Press <EHTER> to select t^————« 
Press <ESC> to exit froa this wenu. 
Press ? for help with the highlighted ■ 


Use the up and down arrowIPRODUCT DESCRIPTIOH: Reverse aetaflange for 
or t^pe the nuaker for thifraailgating bent borogoves. 


Don’t just put your applications in windows—put windows in your 
applications with VSI—the window manager. 

VSI is a high-speed screen management tool. You can create up to 255 
simultaneously active overlapping windows—large or small—for any 
application program. Read to or write from any window and display them 
with borders and user declared priorities. VSI is callable from any com¬ 
piled language and supports all color and monochrome video attributes. 

Cut Development Time 

VSI’s powerful primitives simplify your screen management chores 
with a complete library of functions. And you can preview and edit your 
screen layout before you actually program it 
But that’s only the beginning. 

Free Demo Disk 

Our free hands-on demo disk will have you doing windows, too. 

Return the coupon with $4.50 for postage and handling. 

MasterCard or Visa accepted with phone orders only. 

VSI is used with IBM PC, XT and compatibles as well asTI 
Professional, and Wang PC. 

^ develop software for 8086/8088 based machines and I want to do windows, too. ^ 

I I’m enclosing $4.50 for postage and handling Please send me your free demo I 
disk. My business card is attached. (Offer expires December 31,1984) 


VSI 

CopvTifiht 1984 Amber Sy.stems. Inc 



1 ('nmpiitpr 




AMBER SYSTEMS, INC. 

1171 S.Sunny\’ale-Saratoga Road 

San Jose CA 95129 
(408)996-1883 

1 M.imi' 




C'()mn,nnv 




1 A(l(lris<; 




, (’ilv 


7ip 



l_ 




CIRCLE NO. 

126 ON READER SERVICE CARD 





S6 


PC Tech Journal 































COMPILER 


dBCDMRLER- 

WORDTECH SYSTEMS P.O. Box 1747, Orinda, CA 94563 C415] 254-0900 


WordTech Sysfcms is proud to announce the firs|^)mpiler for 
dBASEII®. 

-INDEPENDENCE—- 

Now you can write compiled, efficient programs that will execute 
independently of dBASE II, and without RunTime®. 

-NO LICENSE FEES- 

You only buy dB ('ompiler™ once. You ma\' compile as mam’ 
applications as you wish, FOREVER, with no additional fees. 

--SPEED--- 

. Application programs are compiled into low level code and only 
include program ffinctions that are ab.soluteh’ necessarv'. 

-SECURI'TY—^-—-— 

Compilation is far better than encryption for protecting your 
programming insights and procedures. 

-— POR'IABILITY- 

Using dB Compiler’s cross-linkers you can use one development 
system to generate code for various target environments. 

Suggested retail price: $750; additional target modules: $350 

ORCLE NO. 1(1 ON READER SERVICE CARD 


-PRESENTING- 

The first compiler for dBASE E 


dBASE II, RunTime® Ashton-Tate 





Illlllllllltl 


EPSON.COM 


JE 

PARM T 

JUMP TO TOP-OF-FORM ROUTINE 



CMP 

AL.'R' 

PARM TO 'REINITIALIZE PRINTER' ? 



JE 

PARM R 

JUMP TO RESET ROUTINE 



CMP 

AL,*r 

PARM TO SET 'ITALIC CHAR. ? 



JE 

PARM I 

JUMP TO ITALICS ROUTINE 



CMP 

AL.’U' 

PARM TO SET 'UNI-DIRECTIONAL' PRINT MODE 

? 

JE 

PARM U 

JUMP TO 'UNI-DIRECTIONAL' ROUTINE 



CMP 

AL, • W • 

PARM TO SET 'WIDE' PRINT MOOE ? 



JE 

PARM W 

JUMP TO WIDE ROUTINE 



SEARBK: LOOP 

SEAR 

LOOP BACK FOR OTHER PARMS 



SEAREN: JMP 

PGMEND 

JUMP END-PROGRAM PROCEOURE 



;********* BACKSLASH TOGGLES HEXIOECIMAL INPUT MOOE ON/OFF 


; TOGGLE THE 

HEXADECIMAL INPUT PROC.-OFF===>ON - OR 0N== 

==>OFF 


TOGGLE: NOT 

SWITCH 




JMP 

SEARBK ; 

iRETURN TO PARM SEARCH PROCEDURE 



.********** gojj POP y/^LIO HEXIOECIMAL NUMBERS ************************ 

PASTHRU: SUB 

AL,30H 

CONVERT FROM ASCII REPRES. TO REAL 

. NUMBERS 

JC 

BELEND 

END PROGRAM IF WRONG PARM - SOUND 

BELL 


CMP 

AL.9 

CHECK FOR DIGIT > 9 



JBE 

PASTHR2 

VALID NUMBER - JUMP TO MATH ROUTINE CALL 


SUB 

AL,7 

CONVERT FROM ASCII REPRES. TO HEX 

DIGITS 

A-F 

JC 

BELEND 

END PROGRAM IF WRONG PARM - SOUND 

BELL 


CMP 

AL.OFH 

CHECK FOR DIGIT > '15' HEX 



JA 

BELEND 

END PROGRAM IF WRONG PARM - SOUND 

BELL 


PASTHR2: CALL 

HEXMATH 

CONVERT INPUT PARM TO HEX-NUMBER 



JMP 

SEARBK 

RETURN FOR NEXT PARM 



;******** PRE- 

•DEFINED EPSON PRINTER PARMS PROCEDURE ******************* 

PARM E: MOV 

AL,45H ; 

;CODE FOR 'EMPHASIZED' FONT 



CALL 

ESCAPE 




JMP 

SEARBK 





PARM D: 

MOV 

AL.47H ;CODE FOR 'OOUBLE-STRIKE' MOOE 



CALL 

ESCAPE 



JMP 

SEARBK 

PARM C: 

MOV 

AL.OFH ;CODE FOR 'COMPRESSED' FONT 



CALL 

PRINTER -.COMPRESSED MODE DOES 'HOT' NEED PRE-ESCAPE SEQ 



JMP 

SEARBK 

PARM T: 

MOV 

AL.OCH ;COOE TO 'ADVANCE PAPER TO TOP-OF-FORM' 



CALL 

PRINTER ;FORM-FEED TO TOP-OF-FORM DOESN'T NEED ESC. 



JMP 

SEARBK 

PARM R: 

MOV 

AL,40H -.CANCEL ALL MODES/RESET LOGICAL TOP-OF-FORM 




CALL ESCAPE 



JMP 

SEARBK 

PARM I: 

MOV 

AL.34H ;CODE FOR 'ITALICS' FONT 



CALL 

ESCAPE 



JMP 

SEARBK 

PARM U: 

MOV 

AL.55H -.TURN ON UNI-DIRECTIONAL PRINT MOOE 



CALL 

ESCAPE 



MOV 

AL.l ;COOE TO SET UNI-DIRECTIONAL 'ON- 



CALL 

PRINTER 



JMP 

SEARBK 

PARM W: 

MOV 

AL.57H -.CODE FOR 'PERMANENT DOUBLE-WIDE' FONT 



CALL 

ESCAPE 



MOV 

AL.l ;CODE TO SET WIDE 'ON' 



CALL 

PRINTER 



JMP 

SEARBK 


**************4 

' END OF PROGRAM PROCEDURE ***************************** 


RESTORE CONTROL TO DOS - END OF PROGRAM 


















8ELEND: 

MOV 

MOV 

CALL 

DIGITS,0 

AL,07H 

PRINTER 

CLEAR 'UNPAIRED DIGITS* HEX CHECK 

BAD PARMS IN PROGRAM - SOUND BELL 
PROGRAM ENDED WITH ERRORS! 

PGMEND: 

CMP 

DIGITS,0 

WAS 'UNPAIRED' HEXCODES ENTERED? 


ONE 

BELEND 

SOUND BELL TO SIGNAL ERROR 


CMP 

TESTPR.O 



JE 

DEFAULT 

NO OUTPUT WAS PRODUCED - SEND DEFAULT 


RET 


;RETURN TO DOS - END OF PROGRAM. 


********************************************************************** 


NO PARMS WERE ENTERED - DEFAULT SETTING OF DOUBLE-STRIKE/EMPHASIZE 



DEFAULT: MOV AL,47H ;PUT 'DOUBLE-STRIKE* CODE IN OUTPUT REGISTER 
CALL ESCAPE 

MOV AL,45H ;PUT 'EMPHASIZE* CODE IN OUTPUT REGISTER 

CALL ESCAPE 

JMP PGMEND ;JUMP TO END-OF-PROGRAH ROUTINE 

START ENDP 


********** escape subroutine - SEND ESCAPE CODE TO PRINTER *********** 


ESCAPE 

PROC 

PUSH 

MOV 

NEAR 

AX 

AL.18H 

SAVE POTENTIAL CHAR. TO BE PRINTEO ON STACK 

MOVE ESCAPE CHAR.(IBH) TO OUT REG. 


CALL 

PRINTER 

CALL PRINTER SUBROUTINE 


POP 

AX 

GET CHAR. TO BE PRINTEO FROM STACK 


CALL 

PRINTER 

CALL PRINTER OUTPUT ROUTINE 


RET 


RETURN TO CALLING SUBROUTINE 

ESCAPE 

ENOP 




********* printer subroutine - ALL PRINTING IS DONE HERE ************* 
SEND CHARACTER IN AL REGISTER TO PRINTER 


PRINTER PROC NEAR 

MOV TESTPR.l ;VALIO OUTPUT HAS BEEN PRODUCED 


MOV 

DX,0 

;SET REGISTER FOR PRINTER OUTPUT 

INTERRUPT 

MOV 

AH,0 

;SET REGISTER FOR PRINTER OUTPUT 

INTERRUPT 

INT 

17H 

;CALL PRINTER DRIVER IN BIOS 


RET 


;RETURN TO CALLING SUBROUTINE 



PRINTER ENDP 


********* CONVERT INPUT PARMS TO HEXIDECIMAL NUMBERS ***************** 


HEXMATH PROC NEAR 

CMP DIGITS,0 

ROUTINE TO CONVERT PARM TO HEX NUMBERS 
0===> 1ST 1 - !===> 2ND # 

JNE MATH2 

MUL SIXTEEN 

MOV HEX.AL 

JUMP & PROCESS 2ND # 

MULTIPLE 1ST # BY 16 

CLEAR & STORE RESULT IN 'HEX' 

INC DIGITS 

RET 

MATH2: ADD AL.HEX 

1ST NUMBER PROCESSED 

RETURN TO PASTHRU ROUTINE 

TOTAL THE TWO HEX DIGITS 

MOV DIGITS,0 

CALL PRINTER 

RET 

CLEAR DIGIT VARIABLE FOR FUTURE PARMS 

SEND HEX # IN *AL* REGISTER TO PRINTER 
RETURN TO PASTHRU ROUTINE 

HEXMATH ENDP 


.********************************************************************** 

MAIN- ENDS 

END START 


Presenting the No-Risk Disk.'” 

No matter how many times you play it, the TDK 
No-Risk Disk won’t drop a letter. A word. Not even a bit. 

We guarantee it. 

And not for 1 year. Or 5 years. But with a lifetime 
replacement warranty for as long as yo u own the disk. 

That’s a promise we don’t make 
lightly. Because it has almost 50 years’ 
research and development of TDK 
recording products behind it. 

So the next time you want to store 
important information, put it on TDK. 

You’ve got nothing to lose. 



TDK offers a complete line of the most popular disks in 5'/4- and 8-inch formats. 


IDK. THE IWHHSK DMC 

CIRCLE NO. 178 ON READER SERVICE CARD - 


September i984 


89 

























Q)mputer drecuns. 



upm PbuR Palf-Hbi&ht 


fimd piskn Sacjoif 


^TOm>E- FPDTBCTIOti 


FC'TyF& 


TPULi COMFAT/SlB- 
PVNS AIJ- F0FULA2 "SOFTi^/AaE:. 


DuAi-MDl^ilSFLAV 


200-yJArr foiAJSF ’^PFlV 
APO six SXPANS/OM SLOTS 


I2SF TO /2AM 0/1 
5ysTm BOAFP 


yo8& FPoceSSo/F 


I ntroducing the new COMPAQ DESKPROr 
COZ^AQ combined the best features of the best 
desktop computers. And then added exclusives you won’t 
find on others. Today they’re together in one personal 
computer. The COMPAQ DESKPRO. 

The COMPAQ DESKPRO is the most expandable 
desktop you can buy. It can grow as you grow, with up 
to six available expansion slots and four storage devices, 
including a unique fixed disk drive backup—all inside the 
computer instead of out, saving your desk from clutter. 


It’s the most rugged desktop, too, because it’s the only 
desktop with a shock-mounted mass storage compartment 
to help keep disk drives in alignment and help protect you 
from losing data, downtime, and dollars. 

It’s also the most compatible desktop, giving you true 
hardware and software compatibility with the industry’s 
most popular personal computers. The COMPAQ 
DESKPRO runs thousands of programs written for the 
IBM* PC and XT right off the shelf. Which brings us to the 
next point. 


®1984. COMPAQ* is a Registered Trademark and COMPAQ DESKPRO” is a Trademark of COMPAQ Computer Corporation IBM* is a Registered Trademark of International Business Machines Corporation 

















Dream computer. 


The industry leader in compatibility 


Text and graphics on one screen, not two.. 


Power and space for almost unlimited ^ 
expansion 


Add up to 640K of memory on 
system board and save expan¬ 
sion slots. 



Runs software 2X to 3X faster. • 



10MB fixed disk drive 
10MB fixed disk backup 
Two diskette drives 


Exclusive tape backup helps 
protect data. 


Unique shock mounting helps 
protect your data and hardware 
investment. 


Familiar layout enhanced 
with LEDs on caps and num- 
lock keys. 


The COMPAQ DESKPRO is the fastest truly compatible 
desktop you can buy. Its two to three times faster than the 
industry standard. That saves time now. And in the future, 
as software becomes more sophisticated and integrated, it 
will save you even more time as well as protect your per¬ 
sonal computer investment. 

But there’s more. We gave the COMPAQ DESKPRO one 
other feature not found on any other machine. You can 
choose between an amber or green dual-mode monitor 
that displays high-resolution text and graphics with equal 


brilliance, saving you the cost and clutter of a second monitor. 
See the Dream Computer. Then pinch yourself. It’s for real. 
For the location of the nearest Authorized COMPAQ 
Computer Dealer, or for a free brochure, call 1 - 800 - 
231 - 0900 , Operator 5 or Telex #795437 COMPAQCOMP HOU. 



comPAa 


It simply works better. 

































92 


PC Tech Journal 




















OKIDOKK 

FROM PC 
TOOKIIMA84 

Jeff Garbers 


A program that translates the PC's codes for line-drawing characters 
into language the Okidata 84p can understand 


S ometimes a printer and a personal comput¬ 
er don't speak quite the same language. An 
example of this problem occurs with the Oki¬ 
data Microline 84p printer when it is used 
with an IBM PC or compatible. The Oki 84p 
has become a popular alternative to the IBM 
Dot Matrix and Graphics Printers. It is rea¬ 
sonably priced, quick, and offers an attractive 
correspondence-quality mode as well as other 
useful features. Unfortunately, it was not 
originally designed to work closely with the 
PC, so its graphics character set is quite differ- 


/eff Garbers is director of product development for 
Microstuf, Inc. in Atlanta, Georgia. He is coauthor of 
Crosstalk XVI. 


ent from the de facto standard established by 
IBM. What the PC displays as a solid vertical 
bar (character 179) comes out looking Japa¬ 
nese on the Oki. For a vertical bar, the Oki 
uses character 150, which would be displayed 
by a PC as an "O" with a circumflex. 

Since the codes are not compatible, at¬ 
tempting to print any of the PC's non-ASCII 
characters results in a print-out that is dis¬ 
tracting at best and unreadable at worst. The 
situation is especially annoying when print¬ 
ing screen dumps of programs that use the 
PC's line-drawing characters to form boxes or 
pictures on the screen. Checking the Oki 
manual reveals that the printer can print 
most of the necessary characters without 


September i984 


93 






OKI Dokey 


having to revert to complex graph¬ 
ics-printing procedures—it's just 
that the codes are different. All that 
would be necessary to fix things is a 
program to translate the PC's codes 
into the Oki's codes as the docu¬ 
ment is printed. 

X20KI, the program presented 
in listing 1, does just that. It inter¬ 
cepts any calls to the IBM BIOS 


parallel printer routine, checks to 
see if the character to be printed 
should be translated, and does the 
translation if it can. This version of 
the program supports only the line¬ 
drawing characters, but it could 
easily be expanded to do more. The 
program is well suited for modifica¬ 
tion and can serve as a base for 
interesting projects. (For instance, it 


could be used as an example by pro¬ 
grammers wishing to develop a rou¬ 
tine that would translate codes for 
printers other than the Oki 84p.) 

Using the Program 

The IBM Macro Assembler is re¬ 
quired to assemble this program. 

Use an editor to type it in (leave out 
the comments if desired) and give it 
the name X20KI.ASM. Assemble 
and link it with the following steps 
(this article assumes that the pro¬ 
grammer has MASM.EXE, 
LINK.EXE, and EXE2BIN.EXE): 

MASM X20KI; 

LINK X20KI; <-wiII produce 
a warning error 
EXE2BIN X20KI X20KI.COM 
DEL X20KI.EXE 
DEL X20KI.0BT 

This routine will result in a run¬ 
nable X20KI.COM, which the user 
may wish to put on his boot disk 
and then incorporate into his 
AUTOEXEC.BAT file. If errors are 
encountered at any step in the as¬ 
sembly process, don't continue,- go 
back, edit the source code, and start 
again. The only error to ignore is 
the warning error after the link 
step—that's perfectly normal. 

To start the program, type 
X20KI. The program will announce 
that it is installed and running. To 
toggle the translation feature (if, for 
example, the Okidata's graphics 
features are needed), type X20KI 
again; the program will activate or 
deactivate (as appropriate) and will 
display its current status. The pro¬ 
gram has been tested and used ex¬ 
tensively on the author's own sys¬ 
tem, but no guarantees are made as 
to its usefulness with any particular 
configuration of PC and printer. 

Special Techniques 

X20KI is extensively commented, 
but there are a few notions that 
need special attention: 

Borrowing the Interrupt 
Vector. Notice that when X20KI 
first starts up, it stores the address of 



Btrieve: 

Network and single-user file management for all 
your programs. All your programming languages. 

Written in 8088 Assembler for the 


Say goodbye to writing file management 
routines. Because now Btrieve™ can han¬ 
dle file management for all your program 
development on the IBM PC. All your 
programming languages. 

Based on the b-tree file indexing 
system, Btrieve provides the most 
sophisticated file handling powers 
available for your PC. And for multiple 
PCs. Btrieve™/N lets you share files 
among PCs in NetWare,™ PCnet,"^^ 
EtherSeries7^ or MultiLink™ networks. 
And both Btrieve and Btrieve/N offer the 
same superior performance characteristics: 

• Interfaces all major IBM PC 
languages—BASIC, Pascal, 
COBOL, C, and IBM Macro 
Assembler 



P.O. Box 9802 #590 


SoftCraftInc. 

Austin, Texas 78766 (512)346-8380 


Suggested retail prices: Btrieve, $245; Btrieve/N, 
$595. Requires PCVDOS or MS™/DOS, version 1 
or 2. Dealer inquiries welcome. 


IBM PC 

• Multikey access to records 

• Automatic file recovery on system 
crash. 

Btrieve and Btrieve/N also have user- 
defined transaction management. 
Unlimited number of records per file. 
Complete error control and recovery 
within an application. Duplicate, 
modifiable, and segmented keys. Variable 
cache buffer from 16K bytes to 64K bytes. 

Moreover, record retrieval is fast with 
Btrieve—no matter how large your data 
base. So you can begin writing programs 
faster with Btrieve. 

Say goodbye to file management 
routines. And hello to Btrieve. 


IBM, MS, Btrieve and Btrieve/N, PCnet, MultiLink, 
NetWare, and EtherSeries are trademarks of International 
Business Machines, Microsoft Corporation, SoftCraft Inc., 
Orchid Ikdinologv’, Davong Systems Inc., Novell Data 
Systems, and 3ComCorp., respectively. 


94 


CIRCLE NO. 201 ON READER SERVICE CARD 


PC Tech Journal 















Buy it because it’s the best buy 


Buy the OMNINETNetwork 
for the most expandability. 


At under $500 per node, OMNINET 
has the lowest cost per station of 
any local area network. 

Because an OMNINET Network 
uses simple, twisted pair wire. 
Which means that cabling costs one 
fifth of the coaxial alternatives, 
with none of the installation 
headaches. J 

Result? OMNINET is both A 

easier and less expensive to Om 

install. Or expand. BH 


If you’re just starting a network, 
consider OMNISHARE™ Software. It 
lets your regular PC’s or PC-com¬ 
patibles make full use of the disk 
space on an IBM PC XT.™ 

When you want to draw on the 
resources of your central comput¬ 
er, you’ll want Corvus’ SNA Gateway 
It lets your network’s micros tap 
into your mainframe’s information. 

Whether you have 2 computers 
or 2,000, OMNINET can get the 
most out of them. 


Buy the system 
for unmatched 
flexibility 


Buy us for our experience. 


We pioneered local area network¬ 
ing for micros. And we’re con¬ 
stantly working on better ways to 
give you the system 
you need, with the ^ 
versatility you f 

want, at a price 59% ‘V IJ 
that makes sense, 

With the result thar^teys;^^ 

3 out of every 5 locally-networked 
micros in the world are connected 
to a CORVUS network* 

Give us a call at 800-4-CORVUS 
to find out more. 

Because when it’s aU said and 
done, one of the best arguments for 
going with an OMNINET Network 
is really very simple. 

Buy it for your peace of mind. 


^ j From Apples 
to Zeniths, 

1^0 OMNINET 
handles 
more types 
0 i I of micros 

I B than any 
other net- 
work. So keep ^ 
the dec’s in Data Proc- 

essing and the PC’s in 1 

Purchasing; OMNINET options like electrohigmail, your 
makes for great work- people can choose from over 500 
ing relationships, different programs: acc(i^rding to 
^ And starting with their needs. Not theif ni^twork’s 

--—-—-- 1 limitations. 

^ Wliat’smo^, CORVUS 


can handl§all ^our 
hardwar^needk. From 
6 to 45 M® harddisks 
through 20bMB Ran¬ 
dom Access bacl^p at 
an amazing $11 p4r 
megaby^. Bofh,'sgith 
OMNINET servers briilt 
right in. 


OORVUS 


Oywiis^tility 


The Networking Company. 

' 59% of all locally-networked micros operate in a corvus network, 
according io InfoCorp CORVUS,THE NETWORKING COMPANY, 
OMNINET and OMNISHARE are trademarks of corvus systems inc. 
IBM PC and PC XT are trademarks of International Business 
Machines, apple is a trademark of apple computer inc. dec is a 
trademark of digital equipment corporation. Zenith is a trade¬ 
mark of Zenith Corporation. TI is a trademark of Texas Instruments. 


Omnidrive'’’ Connis Bank' 


Zenith 


Connis 


Corvus OMNINETNetu>ork 


Printer 


CIRCLE NO. 230 ON READER SERVICE CARD 


.IS 

T 


-S4 




































































Oki Dokey 


the old INT 17H handler away for 
its future use. When its own work 
is complete, it calls the old handler 
before returning to its own caller. 
This technique is often referred to 
as "borrowing" the interrupt vector. 
In contrast, a program is said to 
"steal" the interrupt vector when it 
handles the interrupt itself and 
either returns directly to its caller 


or jumps off to a fixed position in 
the ROM BIOS, often leaving a pre¬ 
viously installed caller out in the 
cold. Programs that steal interrupt 
vectors—especially the video, key¬ 
board, and timer-handling vectors— 
are one of the major causes of in¬ 
compatibility between different soft¬ 
ware packages. Obviously, stealing 
is to be avoided. The borrowing 


TURSOCffARGE 
YOUR IBM 
PERSONAL EDITOR 


Let EDITOR-IN-CHIEF take charge. EDITOR-IN-CHIEF is our highly 
optimized key-definition profile for the IBM Personal Editor that 
saves you thousands of keystrokes. EDITOR-IN-CHIEF simplifies 
and speeds entry and editing of programs and text, dramatically 
increasing your productivity More than forty new functions give 
you powerful control over your text or program files. 

With only one keystroke or key-combination, you can: 

• Mark or unmark a word or string of words • Capitalize or 
lower case all text in the marked area • Mark from the cursor 
to the beginning or end of the line • Repeat the current line 
without marking it first • Extend a marked block of lines up 
or down by one or more lines • Get to the "unnamed" (error 
recovery) file • Set tabs to provide for structured program 
indentation • Automatically redefine the Enter key to any of 
five useful functions for entering or editing program or text 
files • Save the current contents of the command line, for 
later reinvocation without retyping • And much more. 

We’ve adjusted and refined nearly every function in the IBM-supplied 
profile for improved usability For example, functions meant to work in 
the data, area (such as marking characters, blocks, and lines) 
work properly even when the cursor is on the command line. 


EDITOR-IN-CHIEF also includes an alternate profile, 
where you can custom-code your own key definitions. 

Predefined keys let you conveniently switch back and forth 
between the standard EDITOR-IN-CHIEF profile and your 
custom profile. We also include a complete online help 
facility and an alternate help facility where you can 
document your own key definitions. 

919 . 95 ^ 




POLYGON 

SOFTWARE 

CORPORATION 


EDITOR-IN-CHIEF comes with: 
diskette with profile and help file, 
and alternate profile and help file; 
reference card; complete installation 
and reference documentation. 



363 Seventh Avenue, New York, New York 10001. Telephone; (212) 563-5487. Add $2.50 
postage and handling (NY residents add appropriate sales tax) Visa and Mastercard accepted. 


IBM IS a legisieted liademark of Inieinaiional Business Machines Coipoiaiion 


technique, if used properly, allows 
"chaining" of handlers and will 
help to ensure future usefulness. 
Using a Scan Table. There are 
two common ways of performing 
character translation: using look-up 
tables and using scan tables. With a 
look-up table, the program subtracts 
some constant value from the in¬ 
coming character so as to make it an 
"offset" into a predefined table; for 
example, a program might subtract 
65 from an alphabetic character to 
translate A to zero, B to 1, etc. The 
program then uses one of the 8088's 
indexed addressing modes to pick 
up the desired outgoing character 
from the table, as in the following 
code fragment: 

sub al, 65 ; change 'A' TO 0, 

/B' to 1, etc. 

mov bl, al ; we will use BX 
;as our offset 
mov bh, 0 ; high half is 

;always zero 

mov al, TABL£[bx] ; pick up 
;the desired value 

Look-up tables are appropriate 
when speed is a concern or when 
many of the characters in a particu¬ 
lar range need to be translated. 

Neither of these cases is appro¬ 
priate in X20KI —the speed is going 
to be limited by the printer's output 
capability anyway, and the program 
can handle only a few of the possi¬ 
ble characters. The scan table ap¬ 
proach is therefore used instead. In 
this method, there are two "paral¬ 
lel" tables—one containing codes 
for incoming characters that need to 
be changed and the other contain¬ 
ing the desired outgoing characters. 
The program scans the table, and if 
it finds a match, the value at the 
same offset in the other table is 
picked up and used. See listing 1 for 
an example of this process. 

End but Stay Resident. 

When a program finishes, DOS 
usually frees up the memory it used 
so that memory is available to other 
programs. The user would run out 
of memory quickly if this were not 


96 


CIRCLE NO. 171 ON READER SERVICE CARD 


PC Tech Journal 






















“In the art 
of programming 
the difference between 
greatness and mediocrity 
is often the quality of 
the artist’s tools. ” 


To Order or Request Literature Call 

1 - 800 - 547-4000 

Ask For Dept. 310 
VISA & MasterCard Accepted 
Or Send Checks, P.O.’s To: 
Polytron Corporation ds- 310 -fi 
P.O. Box 787, Hillsboro, OR 97123 

Add $1.25 Shipping Charge For Each 
Product Ordered. 

CIRCLE NO. 268 ON READER SERVICE CARD 


POLYOVERLAY 

Make Maximum Use of Memory with Overlay Code. Creates optimal memory 
overlay structures, in terms of utilizing a minimum of total physical memory, while 
it builds a batch file to automatically drive an overlay linker, for creating efficiently 
overlayed executable code. Creates optimum overlay structures for any modular 
language including C, FORTRAN, Pascal, Ada and even BASIC. Essential for 
porting mainframe code to large to fit into personal computer’s memory all at one 
time. Requires MS-DOS 2,0, and Microsoft’s Linker Version 3.4. Shipped with 
Users Manual. $OQ 

POLYTRON C LIBRARY 1 

A Library of High-Performance Functions for Lattice C Compiler Users. Over 50 significant routines 
more useful than common library functions. The library includes UNIX-like utility functions, file management 
functions, more efficient and flexible I/O routines, and executive functions. This is a powerful, professional- 
quality C library that is easy to use and designed to increase your productivity. Assembly and C source code 
included. Requires Lattice C Compiler Includes Users Manual... $QQ 

POLYLIBRARIAN 

The Object Module Library Manager for MS-DOS™. PolyLibrarian lets you create a single library from 
related Objects Modules. The IBM PC Linker will then select only the modules necessary to produce an 
executable file. PolyLibrarian can: Create, organize, reconstruct, dissect, and compress libraries of object code 
modules. Add, delete and replace an object module. Extract a module from a library to create an OBJ file. 
Change public and external names. Modules are time-stamped within the library. Supports full path names. 
Supports Microsoft’s original and latest Linker (Version 2.4). Includes installation program to customize options 
to your specific needs. Features three Modes of Operation (Interactive, Command File, Command Line) that 
can be freely intermixed. Surpasses performance of other primitive librarians. Features a highly functional user 
interface that uses simple meaningful key words. Requires 128K RAM, MS-DOS (PC-DOS) 1.1 or 2.0. 
Compatible with any compiler or assembler that uses the MS-DOS (PC-DOS) Linker. Shipped with 
comprehensive Users Manual including step-by-step tutorial for.$QQ 

POLYLIBRARIAN II 

Extends PolyLibrarian’s power to Intel™ and Digital Research™ Format Libraries. PolyLibrarian II is an 
enhanced version of PolyLibrarian. In addition to all the features and functions listed above for PolyLibrarian, 
this version adds a new dimension of productivity for programmers using Intel and Digital Research Language 
Products. Compatible with any Intel Format Library and any Microsoft Format Library. Compatible with 
Intel’s Link 86 under MS-DOS. Compatible with Digital Research Linker under MS-DOS. 

POLYMAKE 

The Intelligent Program Builder & Maintenance Tool for MS-DOS. Poly Make frees you from the need to 
remember which files depend on others and which files have been modified. PolyMake will: Remember the 
exact sequence of operations necessary to make a new version of a program. This will significantly reduce 
developement time, prevent bugs & manage large software projects. Automatically invoke your compiler, 
assembler, linker, librarian, or do whatever is necessary to bring all dependent files up to date. Compare the date 
and time of all relevant files and use internal rules to rebuild a program or complete software system. Rules can 
be modified and expanded. Extensive debug capabilities help construct efficient make files. Includes features 
superior to UNIX Make. Fully automatic operation under MS-DOS 2.0. Full path name capabilities under 
MS-DOS 2.0. Requires 128K. Shipped with a comprehensive Users Manual.$QQ 

POLYFORTRAN TOOLS 1 

Four Powerful Utilities in One Package. For developing or enhancing software or porting mainframe 
software to personal computers these easy-to-use tools will become indepensible for the professional 
FORTRAN programmer. Includes: 1. FORTRAN-XREF for developing comprehensive cross-reference 
maps of FORTRAN source code. Mainframe users expect this kind of utility. New personal computer users 
have X-REF power. 2. FORTRAN-EXTRACT extracts the MAIN routine as well as all SUBROUTINES, 
FUNCTIONS and BLOCKDATAS from FORTRAN source code. It is unsurpassed for breaking-up large 
codes into manageable modules that can be individually modified, compiled, added to libraries and finally linked 
into a single executable code. 3.FORTRAN-CLEANUP performs three critical functions to improve 
FORTRAN source code readability: A. Renumbers FORTRAN source code statements within each routine to 
begin at a user specified starting number; B. Adds spaces around delimiters and key words; C. Performs 
indentation for DO loops, IF...Then and similar structures. If you are becoming weary of cleaning up “sloppy” 
code then you need FORTRAN-CLEANUP. 4. FORTRAN-SCREEN lets you show off your software. This 
is a complete set of FORTRAN callable screen attribute and cursor position control functions for creating user 
friendly, interactive menus and displays. Requires MS-DOS 2.0, 256K, One Disk Drive, Compatible w/hard 

disk. Shipped with Users Manual. . *179 


Praise From Professionals 

“PolyLibrarian is a powerful tool for serious 
hobbyists and professional programmers. It 
Is a thing of beauty; a work of art. The docu¬ 
mentation is excellent, the large selection 
of commands are intuitive to learn and easy 
to use, and the program itself provides a 
service of inestimable value. It Is refreshing 
to see a tool of this caliber available for seri¬ 
ous programmers. The design of this pro¬ 
gram shows foresight and Ingenuity. It sets 
the human engineering standard for pro¬ 
gramming utilities. If all of a programmer’s 
tools were so simple to work with, better 
programs could be developed In less time 
and with fewer headaches. Bravo, Polytron! 
I look forward to your next product.” 

Dan Rollins, 

Programmer and Author writing in PC Age 

“PolyLibrarian is an extensive, friendly utility 
. . . an excellent tool for serious program¬ 
mers. It combines professional quality with 
a flexible user interface.” 

Greg Estes 
Editor, Programmers Journal 

“I am thoroughly pleased [PolyLibrarian] Is 
definitely one of the best products of its 
type that I have ever used on any system.” 

An Unsolicited Comment from 
Steve Kauffman 
Consulting Engineer 





















Ok! Dokey 


the case. X20KI, however, needs to 
"'stay resident" in memory so it is 
always ready for use. Otherwise, 
when a printer interrupt happens, if 
the handler has been overwritten by 
a subsequently loaded program, the 
system will crash. 

Most programs stop with an 
INT 20H, which lets DOS free up 
the memory they used. X20KI, how¬ 
ever, ends with an INT 27H. This 
is a special method of exiting that 
informs DOS that part of the pro¬ 
gram that is about to stop needs to 
stay resident. It's described (briefly) 
in the DOS manual. Notice two spe¬ 
cial aspects of the way X20KI uses 
this function: 

1. The INT 27H is used only the 
first time the program is run. Other¬ 
wise, every time the user typed 
"X20Kr' another slice of memory 
would be used up. The logic that 
lets X20KI determine if it has been 
run before is shown in listing 1. 

2. X20KI doesn't keep more code 
resident than it has to. The label 
LAST marks the last location in 
X20KI that needs to stay resident. 
Everything after LAST is "tran¬ 
sient" and can safely be flushed 
from memory when the program is 
done running. 

Trying to use printers other 
than IBM's with the IBM PC can be 
frustrating and time-consuming. 

The program presented here should 
help programmers solve their trans¬ 
lation problems and allow them to 
print what they want to print, l""—I 


Okidata Plug 'N Play Compatibility 


F or people who have an Okidata 
ML92 or ML93 and who want 
IBM compatibility without program¬ 
ming, Okidata offers the Plug 'N 
Play interface kit for $49. These two 
replacement PROMs are installed in 
the printer's control circuit board, 
and the resulting Okidata-cum-IBM- 
Graphics printer has a combination 
of features from both printers. Corre¬ 
spondence quality printing, propor¬ 
tional spacing, and 160 CPS data pro¬ 
cessing mode are added to the IBM 
Graphics printer's repertoire. Regret¬ 
tably, some standard Okidata fea¬ 
tures—notably, downline loadable 
character generation and printing at 
12 and 6 CPI—are made unusable. 

All of the Graphics printer's 
character spacing commands and 
printer modes, including bit-mapped 
graphics, are accepted by the Okida¬ 
ta, but their implementations differ 
slightly in a few cases. Character set 
1 is completely supported. In charac¬ 
ter set 2, all of the Greek and Span¬ 
ish characters, the mathematical 
symbols, and the graphics symbols 
are supported, but the card suit 
shapes (ASCII decimal codes 03-06) 
and some foreign characters (ASCII 
decimal 129 and 131-159) are not. 

Underlining on the Okidata is 
continuous; the Graphics printer 
does not underline between words. 
The Okidata is designed for line 
spacing in increments of 1/72-inch 
or 1/144-inch, not 1/216-inch like 
the IBM Graphics printer. In order 
to approximate 1/216-inch spacing, 
the Okidata multiplies the number 
given in the Esc 3 or Esc I commands 
by 2/3 and uses 1/144-inch spacing. 
Because of rounding errors, there can 
be a slight gap or overlap in printed 
lines if the original number is not 
evenly divisible by 3. 


Many programs, especially word 
processors, ask the user to indicate 
the type of printer that is being used. 
Once the Plug 'N Play Kit is in¬ 
stalled, the user should specify the 
IBM Graphics printer, not the Okida¬ 
ta. Accompanying documentation 
provides additional instructions for 
inserting printer commands in Visi- 
Calc, SuperCalc, WordStar, and Super 
Writer. 

An instruction booklet supplied 
with the Plug 'N Play interface kit 
contains complete and clearly illus¬ 
trated directions for installing the re¬ 
placement PROMs. The only tools 
needed are a Phillips-head screw¬ 
driver and some marking tape. The 
control circuit board containing the 
PROMs is removed from its slot at 
the rear of the printer; to do this, 
seven connectors must be unplugged 
from the circuit board. The marking 
tape is used to label each connector 
with its socket number in order to 
make reinsertion easier. After the ex¬ 
isting PROMs are extracted, the re¬ 
placement PROMs are installed, the 
circuit board is reseated, and the 
playing begins. 

Because the plugging process 
takes about 15 minutes, switching 
between the IBM Graphics printer 
emulation and the pure Okidata 
environment is not easy. Although 
some of the Okidata ML92 and 
ML93 features cannot be used with 
the Plug 'N Play interface kit in¬ 
stalled, the replacement PROMs 
yield a high degree of IBM compati¬ 
bility without any programming ef¬ 
fort, and with the associated benefits 
that no user memory is dedicated to 
a resident printer program and no 
processing overhead is incurred in 
translating codes. 

—Julie Anderson 


Listing 1: X20KI.ASM 

***■»!** *********************************************** it****************** 

* This program traps the printer output interrupt (17H), and * 

* translates outgoing IBM-style line drawing characters to codes * 

* compatible with the Okidata 84p. * 

* * 

* Since the 84p doesn't fully implement all double-line characters, * 

* we translate everything into single-line graphics. Other * 

* graphics characters (hearts, happy faces, etc.) are not supported * 

* in this program. * 

* * 

* The utility should be disabled prior to running any program (such * 

* as Lotus 1-2-3) that depends on the Okidata graphics character * 

* set or uses the Okigraph graphics printing facility. * 


* USE: Giving the command "XZOKI" for the first time will install the * 

* conversion utility and produce the report "X20ki installed and * 

* running." Thereafter, giving the "X20ki" command will toggle the * 

* translation feature off and on, reporting "X20ki temporarily * 

* deactivated" or "X20ki reactivated." * 


* Copyright (C) 1983 Jeffrey P. Garbers. All rights reserved. * 

************************************************************************ 


CSEG segment para public 'CODE' 

assume cstCSEG, dsrCSEG 


; The printer interrupt number is defined by the PC to be 17H. 


98 


PC Tech Journal 













Mylstar can cut 
your IBM-PC 
debugging time 

in half. 



Introducing MSD! Mylstar Symbolic Debugging 
Program for IBM Personal Computers, 

PC-DOS V 1.1, 2.0 and 2.1. 

MSD greatly enhances your IBM DEBUG Program. Using the 
same command structure as DEBUG, it lets you substitute 
symbol names and mathematical expressions for hex values. 
Batch files, on-line help, multi-command macros and other 
time saving entries are also included. 

Symbols 

Every symbol declared public in a source module becomes 
part of the symbol table. And new symbols can be created or 
old ones changed as quickly and easily as you can type 
them. And they can be stored for future use. 

More than just a Symbolic Debugger 

In addition to the examples shown below, MSD contains com¬ 


mands for break points, repeat loops and input/output redi¬ 
rection. It lets you define macros which can be saved and 
used again. MSD also offers a Command to trace around 
calls, DOS interrupt calls, and repeat string instructions. 
And, because MSD supports the full set of DOS function calls 
you can debug more programs than with any other currently 
available debuggers. 

MSD adds on what IBM left out 
Call, write or check reader 
circle number for addi¬ 
tional information. You can 
start debugging faster for 
only $125. Phone orders 
accepted with Mastercard 
or Visa numbers. 



MYLSTAR 

ELECTRONICS 

INC. 

165 West Lake Street 
Northlake, Illinois 60164 
Tel (312) 562-7400 
Telex 72-8463 

A Columbi. Picture. Indu.trl.s Company 


CIRCLE NO. 167 ON READER SERVICE CARD 


Dealer & Distributor Inquiries invited 



*U\eETLINe L. IC 
2O9AiOI0O E80D0O 
209A:0103 e83AOO 
209A;0106 7201 
209A;010e C3 
209A;0109 BA0003 
209A:010C E84100 
209A;010F C3 
209As01l0 8B0E1C01 
209A:0114 BF2001 
209A:0117 B020 
209A:0119 F3 
209A:011A AA 
209A2 0HB C3 


CALL 

CALL 

JC 

RET 

MOV 

CALL 

RET 

MOV 

MOV 

MOV 

REPZ 

STOSB 

RET 


DX,Offset ERROR_MSG 
PRINT_MSG 


ERROR: 


CX.CBUFLENJ 

Dl,Offset BUFFER 

AL.20 


*D \BUFFER L t\BUFLEN3 
209A:0120 4D 59 4C 53 
209A20130 20 44 45 42 


«7.7.DBUF 

•D \BUFFER L C\BUFLEN3 


«.DBUF 

D \BUFFER L C\BUFLEN3 
209A:0120 4D 59 4C 53 54 
209A20130 20 44 45 42 55 


4C 49 43 MYLSTAR SYMBOLIC 
32 2E 30 DEBUGGER V 2.0 


265D; OlOO MOV ov.ATQPiP 
■JliOUSUiTTS MOV AXi C\TABLE3 
26SDt0106 SUB AX,\TABLECBX] 
265D;010A DB '.TABLE, >TABLE 
265Dx010C 
tUlOO L A 
2650:0100 B80010 
2650:0103 AlOOlO 
2650:0106 2B870010 


AX,Offset TABLE 
AX,CTABLE3 

AX,tBX+Offset TABLE3 




Arguments like 


source listing 
Labels inserted 


Indirection 
implemented 
(value currently 
stored at 
BUFLEN used) 


Create Macros 


Execute Macros 


Even use symbols 
with assemble — 
command 


Symbolic 

parameter 

accepted 



















Oki DOKEy 


PRINTERJNTERRUPT equ 17H 


; The signature word is an arbitrary 16-bit number that we'll use in 
; checking to see if the utility has already been installed. 


SIGNATURE 

equ 0944H 


; DOS is a handy macro that calls DOS for service. Its first argument 
; is a function code number. The second one (if it's there) is 

; assumed 

to be an offset that needs to be loaded into OX. 


OOSmacro 

fen code, location arg 


mov 

ifnb 

mov 

end if 

int 

endm 

ah, fen code 

<location arg> 

dx, offset location arg 

21H 


; A couple 

of DOS function codes, defined. 


PRINT MESSAGE equ 09H 

SET VECTOR equ 25H 

; Programs 
; address 

to be passed through the EXE2BIN utility need to 
lOOH. 

start at 

org 

lOOH ; goes thru EXE2BIN 



; Since PC-DOS will always start us at lOOH, we need to do a jump 
; right away to get around the data and interrupt-handling stuff 
; and get right to the program initialization. 

HOME: jmp START ; skip around all the data space 


; Data areas for X20KI. 


; BIOS_HANDLER contains the doubleword address which used to be the 
; printer interrupt handler. We leave here through the old vector, 

; so any other interceptors that may have been installed (spoolers, 

; etc.) will still work properly. 

BIOSJiANOLER dd ? , ; address of former int handler 

; The translation tables. The first table (PGJCHARS) contains the 
; IBM-defined codes for the single and double line box drawing 
; characters. The parallel second table (0KI_CHARS) contains the 
; Okidata 84p codes for those characters. Notice that the lines of 
; the OKI CHARS table are quite similar; this is because PC double- 
; line characters are translated to Oki single-liners. 

; NllMBER_OF_CHARS just lets the assembler figure out how many of 
; these we have to look through. 

; In order to expand the conversion tables, just add codes to both 
; tables as needed, making sure that you keep the order straight. 

PC_CHARS equ this byte 

db 218,194,191,195,180,192,193,217,196,179,197 ;sng boxes 

db 201,203,187,204,185,200,202,188,205,186,206 ; dbl boxes 
db 214,210,183,199,182,211,208,189,215 ; combinations 


db 213,209,184,198,181,212,207,190,216 ; more combos 


NUMBER_0F_ 

_CHARS 

equ $-PC CHARS 

OKI CHARS 

equ 

this byte 


db 

152,145,153,147,146,154,144,155,149,150,143 


db 

152,145,153,147,146,154,144,155,149,150,143 


db 

152,145,153,147,146,154,144,155,143 


db 

152,145,153,147,146,154,144,155,143 


; An area to save the incoming character, which we need to preserve. 


INC0MING_CHAR db ? 

.hit-kit*************************************************************** 

; START OF X20ki CODE 

.******************************************************************* 



The company that introduced micros to B-Trees in 

PERFORMANCE 

1979 and created ACCESS MANAGER^^ for Digital 
Research, now redefines the market for high per¬ 

SDD(^] PORTABILITY 

formance, B-Tree based file handlers. With c-tree™ 

to am ISAM [P/a\S[]3/a\@[1 

you get: 

• complete C source code written to K & R standards 

at^ am UNBEATABLE 

of portability 

• high level, multi-key ISAM routines and low level 

[PLSD6E1 

0 

B-Tree functions 

• routines that work with single-user and network 
systems 

• no royalties on application programs 

$395 COMPLETE 

Specify format: 

8" CP/M® 5'// PC-DOS 8" RT-11 

for VISA, MC or COD orders, call toll free 

1-800-232-3344 

c-'tpee" 

' 

BYFAIFICOM 

Access Manager and CP/M are trademarks of Digital Research, Inc. 
c-tree is a trademark of FairCom. 

2606 Johnson Drive 

Columbia MO 65203 

© 1984 FairCom 


_ CIRCLE NO. 119 ON READER SERVICE CARD PC TECH JOURNAL 

100 















LOGITECH MODlJLA-2. 


The only Modula-2 native code compiler for 8086/8088- 
based machines and VAX® systems. 

Compiled machine code means i/er//asf prog ram execution. LOGITECH 
MODULA-2 means very fast, very effective professional program develop¬ 
ment. Here's how: 

All the strengths of Pascal, plus improvements in every respect. 

Wirth's Pascal language is favored for its support of structured programming, 
elegant syntax, and ease of use. 

Modula-2 is Wirth's second generation programming solution. All the 
best features of his Pascal language have been incorporated; Modula-2 
adds major features for true modularity, support for multi-tasking, syntax 
improvements, and features for increased portability (to name Just a few). 

Designed for structured, modular programming, LOGITECH MODULA-2 
extends Pascal's strong type checking features to include type checking 
between program modules. 

Modula-2 is easy to learn. Programs are easy to write, read, and maintain. 

A complete program development system. 

LOGITECH MODULA-2 includes a complete implementation of Wirth's 
design, plus additional LOGITECH modules (including display handling 
and dynamic string handling). 

A complement of powerful debugging tools—including compile-time 
error checks and symbolic debugging—are included. 


fanOrrECH MODL'LA-2 FEATURE SUMMARY: 

B Complete Wirth Moclula-2 implementation. 

■ true modular programming; full support 
for large program development. Supports 
multi-level overlays. 


■ Development environments: MS™-D0S, 
PC«-DOS, CP/M-Se®; VAXA/MS* (cross 
compiler for 8086/88, compiler for VAX). 


■ Compiles 8086/8088 native code for fast- 

, , est execution. (Compiler available for VAX.) 

Wt 8087 support for floating point arithmetic." 

■ Multi-tasking; includes co-routines and 
interrupts 


ii Provides low-level software/hardware access 

■ Includes symbolic debugger. 


Professional support from the people who wrote LOGITECH 
MODULA-2. 

LOGITECH'S commitment to Modula-2 as a professional development tool 
is backed by the most professional support available for Modula users. Because the 
support team includes the developers of our Modula-2 implementation, 
you are assured of fast, high-level answers to the toughest questions. 

Continuous support of Modula-2 and related libraries includes regular 
notice of updates, and low user update costs. 


As the leading producer of Modula-2 for VAX systems and 
8086/8088-based micros, LOGITECH is committed to protecting 
and enhancing your language investment. 

TVademarks: MS—MicFOSOft Corporation; MODULA-2/86, MODULA-2/VX86. M0DULA-2/VMS—LOGITECH, Inc. 

Registered iVademarks: PC—International Business Machine Corporation, Inc; 

CP/M-86—Digital Research inc; VAX, VMS—Digital Equipment Corporation 



CIRCLE NO. 151 ON READER SERVICE CARD 


Don't Start another project without 
considering LOGITECH MODULA-2. 

LOGITECH’S complete Modula 
family: 

□ MODULA-2/86native code 
8086/8088 compiler: $495 

□ M0DULA-2/VMS^“ VAX-resident 
compiler: $1,500 

□ MODULA-2/VX86^“ VAXtO 
8086/8088 cross compiler: $4,500 

To order, or for more information, 
call or write: 

ffl LOGITECH 

Chris Gale, 805 Veterans Blvd., 

Redwood City, CA 94063. (415) 365-9852. 
In Europe contact: Willy Steiger, 
LOGITECH SA. Switzerland. (021) 77 45 45. 


I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

I 

J 








































Oki Dokey 


MAIN proc far 

; The lodged part. This translates Oki chars to our chars. 

HANDLER: jmp short HANDLEl ; skip data 

; Don't change that jump or put anything between here and the INSTALLED 
; and ACTIVE variables. Later we assume that they come right after 
; the start of the handler. 

; The INSTALLED variable is just an instance of the signature word. 

; We can check for the presence of this word to see if the driver 
; has already been installed. 

INSTALLED dw SIGNATURE 

; ACTIVE is 1 if the utility is active. If it’s zero, we just pass 
; characters right through and don’t do any conversion. 

ACTIVE db 1 ; we are active 


Watch for the use of the CS: override prefixes in here. When we 
get control, the only segment register we know about is CS (the 
Code Segment), so we’ll use it to check to see if we're running. 


HANDLEl: 

mov cs:INCOMING CHAR, al ; save incoming character 

; There are three cases in which we want to do nothing here and just 
; skip right out to the HANDLEdone location (which passes control 
; off to the old BIOS handler). Those are: 

; (1) Utility not currently active. 


cmp cs:ACTIVE, 1 ; are 

jnz HANDLEdone ; we’re not running 

; (2) Request to BIOS is not a "please print character" call, 

; but rather a status or other request. 

or ah, ah 

jnz HANDLEdone ; not a print call 

; (3) The character to be printed has a value below 128, and 

; therefore can’t be a line drawing character. Testing 

; for this allows us to pass most of the printing 

; characters through quickly without having to scan 

the table. 

test al, BOH 

jz HANDLEdone ; not a graphics char 

; Okay, we have a character we may wish to do something to. First, 
; let's save a few registers. 

pushf ; need to save this because 

push es ; we’re going to mess with 

push cx ; the direction flag during 

push di ; our scanning. 


; The following two-instruction sequence gets a copy of CS into 
; the ES register. We will be scanning the table that exists in 
; this segment, 
push cs 

pop es 

; When scanning a table, you must: 

; (1) Point ES:0I to the start of the table (we've already 

; done ES) 

mov di, offset PCJCHARS 


NEW Ver. 2.2 
Easier — More Power 



c 


WINDOWS 
FOR C “ 

SETS THE STANDARD 

FOR THE IBM PC + COMPATIBLES 

Lattice C, C86, 

DeSmet C, Microsoft C 


ADVANCED SCREEN MANAGEMENT 
MADE EASY 

IMPROVE 

• Help files 


ADVANCED FEATURES 

Unlimite(d win(jows an(d text files 
Wor(d wrap, auto scroll 
Horizontal and vertical scroll 
Fast! + No flicker or snow 
No memory in screen buffers 
Complete color control 
Auto memory management 
Save and move window images 
Easy overlay and restore 
Format and print with windows 
Highlighting 

WINDOWS^+ 

Much more than a window 
display system. Windows for 
C is a video display toolkit 
that simplifies all screen 
management tasks. 


SIMPLIFY 

Menus 

Data screens • Editors 

Form printing • Games 

ALL DISPLAYS 


C SOURCE MODULES FOR 

pop-up menus, multiple window 
displays, label printer, cursor 
control, text mode bar graphs. 

plus complete 
building block subroutines 


DESIGNED FOR 
PORTABILITY 

Minimal dependence on 
IBM BIOS and 8086 ASM 

FULL SOURCE AVAILABLE 
NO ROYALTIES 


WINDOWS FOR C $150 

(specify compiler & version) 

Demo disk and manual $ 30 

(applies toward purchase) 

Dealer Inquires weicome 


A PROFESSIONAL SOFTWARE TOOL FROM 

CREATIVE SOLUTIONS 

21 Elm Ave, Box T9, Richford, VT 05476 


802 - 848-7738 

Master Card & Visa Accepted 
Shipping $2.50 
VT residents add 4% tax 


CIRCLE NO. 121 ON READER SERVICE CARD 








































For your IBM/PC 

mbpooBcX: 
4 times fesCei; 
and now with 


SOKr& CHAIN 


I75Q 


mbp COBOL can be summed up 
in one word: fast. 

Because it generates native 
machine language object code, the 
mbp COBOL Compiler executes 
IBM/PC* programs at least 4 times 

faster (see chart). Fast also describes our new SOR% which can sort four- 
thousand 128-byte records in less than 30 seconds. A callable subroutine or 

stand-alone, 9 SORT 
control fields can be 
specified. And our new 
CHAIN is both fast and 
secure, conveniently 
transferring control from 

one program to another, passing 255 parameters. Plus, new 
extensions to ACCEPT & DISPLAY verbs give better, faster 
interactive programming. 


GIBSON MIX Benchmark Results 

Calculated S-Profile 

(Representative COBOL statement mix) 

Execution time ratio 


mbp 

COBOL 


Level ir* 
COBOL 


COBOL 


Microsoft**** 

COBOL 


LOO 


4.08 


5.98 


6.18 



128 K system with hard 
is a Micro Focus TM; ** 


disk required. MBM/PC is an IBM TM; •'Level H 
•A Ryan-McFarlandTM; •*** A Microsoft TM. 



mbp COBOL: 
4 times faster. 


The 

complete 
COBOL. 

An Interactive Symbolic Debug Package 
included standard; Multi-Keyed ISAM Structure; 
listing options allow source & object code, map 
& cross-reference checking; GSA Certification 
to ANSI ’74 Level II; mbp has it all. 

It’s no surprise companies like Bechtel, 
Chase, Citicorp, Connecticut Mutual, and 
Sikorsky choose mbp COBOL; make it your 
choice, too. mbp is available at Vanpak Soft¬ 
ware Centers, or direct; just send the coupon, 
or call for complete information—today 

CIRCLE NO. 165 ON READER SERVICE CARD 


Ho?' 


mbp Software & Systems 
Technology, Inc. 

7700 Edgewater Drive, Suite 360, Oakland, CA 94621 
Phone 415/632-1555 

Please send complete mbp COBOL information to: 


CITY/STATE/ZIP _ 



































OKI Dokey 


; (2) Set CX to the size of the table 

mov CX. NUMBER_OF_CHARS 

; (3) Set or clear the direction flag to indicate the 

; direction of the scan (normally CLO) 

cld 

; Now everything is set up for the scan. Let's use the nice 
; 8088/8086 instructions to do it. The one we're going to use will 

; scan bytes until it finds a match, or until it runs out of table. 
; The REPNZ prefix means "repeat this instruction while there isn't 
; a match." 

repnz scasb ; look it up 

jnz HANDLEscanOone ; couldn't find it 


; Now DI points one past the matching entry (remember that 01 is 
; always adjusted, even if we find a match. We now need to convert 
; 01 into an offset into the 0KI_CHARS table. Since we started 01 

; at the offset of PC_CHARS, and since we're one beyond our match, 

; we can subtract one more than our starting spot to find our offset 
; into the 0KI_CHARS table. Messy? A little. Work it out on 

; paper if you have trouble picking up on this notion. 

sub di, offset PC_CHARS+T ; make it an offset 

mov al, es:0KI_CHARS[di] 

; Okay, either we've translated the character or we don't know how 
; to translate it. Recover the registers we saved, and split out 
; to the original BIOS handler. 

HANDLEscanOone: 

pop di 

pop CX 


pop es 

popf 

; Notice again the use of the CS override here. We have not used the 
; OS register at all during this handler. 

HANDLEdone:pushf ; must PUSH before manually 

; calling an int. handler 

call cs:BI0S_HANDLER 

mov al, CS :INC0MIN6_CHAR ; recover original character codes 

iret ; and return to caller 

; Since we're going to be doing an end-but-stay-resident, we'll 
; need to mark where the handler part ends. The label LAST will 
; serve nicely. 

LAST equ this byte ; last part of 

; resident 


. 1c****************************************************************** 

TRANSIENT PART of X20ki 

; See text of article about the difference between the 
; resident and transient parts of an interceptor program. 

. ******************************************************************* 

START: push ds 

xor ax, ax 

push ax ; .COM programs start 

; like this 

; AX is already zero, and we want to look at an interrupt handler's 
; address (which lives in segment 8000). So let's just move our 
; zeroed AX into ES for snooping purposes. We'll set SI to 17H 
; (the printer service interrupt) times 4 (the number of bytes in 
; each handler address). 


COOSOL COMPUTER PRODUCTS 


PRINTERS 


MONITORS 



DOTMATRIX 

• OKIDATA82A,83A,84 

• OKIDATA92.93,2410 

• OKIDATA IBM PLUG AND PLAY KIT 

• EPSON FX-80 • FX-100 

• EPSON RX-80 • RX-80F/T 

• EPSON MX-100 WITH GRAFTRAX + 

• EPSOM LQ-1500 

• C.ITOH8510 

• TALLY SPIRIT 80 

• GEMINI 10X 

• RITEMANBRIEFCASESIZE 

• TOSHIBA 1351 AND 1340 

• IDS PRISM • NEC 8027 AND 8025 

CALL 7 DAYS PORLOWPRICES 

COOSOL, INC., P.O. Box2642, Costa Mesa, CA92626-2642 

Computer Baron, 3013 HarborBlvd., Costa Mesa, CA92626 (714)979-2488 


PRINCETON GRAPHICS RGB 
TAXAN GREEN/AMBER/RGB 
COMREX GREEN/AMBER/RGB 
AMDEK GREEM/AMBER/RGB 
NEC GREEN/AMBER/RGB 

MODEMS 

HAYES SMARTMODEM 300, 1200 
and1200B 

• NOVATION J-CAT 

• SIGNALMAN 

LETTER QUALITY PRINTERS 

NEC 2000 SERIES 

NEC3500AND7700SERIES 

DIABLO 620 AND 630 SERIES 

DAISYWRITER 2000 

C.ITOH FI0-40 AND FI0-55 

BROTHERS HR—15 HR-25 AND HR-35 

COMREX CR-11 AND CR-111 • SILVER REED 

PRINTERACCESSORIES 

IBM CPU CARDS 

• AST6PAKPLUS • STB 

• QUADLINK • PERSYST 

• HERCULES GRAPHICS 

• AMDEK MAI GRAPHICS 


(714)545-2216 


CIRCLE NO. 197 ON READER SERVICE CARD 
























Vdume5.'Nun*ef3 


i WI^DIIS 

r4*Gr.>«3Jk/ Pi» 


wer/iR 


W^^M&IXSonS-lOO 


(>e(vtew 

'fsafaong 


CP/1122 

?/o(l!>TigFof»an-BO 

V^Renjrnng 


cp/»n® 

argjngioBaby 


l^Kfliyare Reviews 

UjmasLDP-2 _ . 

Oiri ^sterns SKM-'W 


IIS-OBS-l 
Anew I 
support 
sonwaePortews forfies 

Magc&nci and 

p^iidierals 


Oi^Pararretets 
i OebocJqng 





\fc>iiT« 5 /l'iunnfcef 


'^*^S44frber5 




^mrsTARfSU 


Mr&Gpyw 

^f^X:aVNXFfatBv 


fSP/HZZ 

l ogcadrg to EE Comi^sl^ 
SiDj5js 

V ■; 


SVNONV^l 


N£WI>fi6Q0CTS 

-rioigErtlAN 

V5wafcr[^j9g^ 

^ %’.tilreCQndSorer 
^■i£wCoai20cpsftiTe 
andaui 


Please judge this book by its cover. 


Everything you need to know about MICROSYSTEMS is 
right there on the cover. It is, pure and simple, The Journal 
for Advanced Microcomputing. A professional resource 
that takes you far beyond the basics of most computer 
magazines. 

MICROSYSTEMS is for sophisticated users and designers 
who need straightforward, no-frills input on advanced 
microcomputer programming and technology. People who 
create their own systems for important business, personal, 
scientific and educational applications. 

Whether you use CP/M®, MP/M®, MS-DOS^“, UNIX®, 
XENIX" or OASIS-MICROSYSTEMS will provide you with a 
monthly package of expert tutorials on valuable modifi¬ 
cations and special uses. The field's leading authorities will 
show you how to upgrade. Download. Modify. Debug. 
Interface. Patch. Speed up. Short cut. Customize. 

You'll get more power, more versatility, more 
performance from your DOS for every infor¬ 
mation processing job. For example, here's the 
type of high-level guidance you can expect in 
the months ahead: 

• How to access the wealth of free software 

available from Remote CP/Ms 

• HP-GL: Add graphics to any computer system 

• More WordStar mods for the Z-19 

• Twenty-seven 16-bit DOS compared 

• Reviews of four C compilers: BDS C, Small C, 

tiny c TWO" and Whitesmiths C 

Save up to 31% on 
THE JOURNAL FOR 
ADVANCED 
MICROCOMPUTING! 


• 488 Bus Tutorial: What the IEEE-488 GPIB bus does and 

how to use It 

• Interfacing the Epson MX-80 printer via a parallel port 

• Will solid-state drives replace the hard disk? 

• Review of CompuPro's MPX-1 Multiplexer Channel 

And there's more. Regular departments include industry 
news and insider's reports.. .The S-100 Bus...The Unix 
File... In the Public Domain... Book Reviews... New Prod¬ 
ucts... plus the Software Directory, detailing newly avail¬ 
able programs. 

How high-level Is MICROSYSTEMS? If you use compu¬ 
ters in your profession, the cost of your subscription may 
be tax-deductible. And if you act now—while this New- 
Subscribers-Only offer is In effect—you can save up to 31%! 

MICROSYSTEMS. When it comes to customizing soft¬ 
ware and adapting hardware, no one covers the field better. 


M”# TK JOURNAL RMADVAIICOAACaOCOMPU^ 

Vncmsvslens 


(Savings based on 
full one-year 
subscription price 
of $26.97.) 


P.O. Box 2930 Boulder, CO 80322 

YES—Please enter my subscription to MICROSYSTEMS Immediately 
at the NEW-SUBSCRIBERS-ONLY rate I've checked below: msszoh 

□ One year (12 issues) only $21.97—I savel9%! 

□ Two years only $40.97—I save 24%! 

□ Three years only $55.97— I save 31%! 

Check one: 

□ Payment 
enclosed 

□ Bill me later 
Charge my: 

□ MasterCard 

□ Visa 

□ American 
Express- 


Mr./Mrs./Ms. 

Company 

(please print full name) 

AHHrp«;<; 


City 


State 

-Zip- 


L Card No_txp. uaie- 

Add $5 a year in Canada, all other foreign add $8. Please allow 30 to 60 days for delivery of first issue. J 


Exp. Date. 



































OKI Dokey 


mov 

mov 

es, ax 

si, PRINTER_INTERRUPT*4 ; 

; point to 

; installed address 

; First, we'll get the address that's there 

so we can call it later. 

lods 

mov 

lods 

word ptr es:[si] 

word ptr BIOS_HANDLER, ax 

word ptr es:[si] 


mov 

word ptr BI0S_HANDLER+2, ax 


; We've now got the old handler in BIOS HANDLER. Pick it up as a 

; 32-bit 

pointer so we can see who's there. 


les 

si, BIOS HANDLER 


; We know that if it’s our handler, there's 
; bytes beyond the beginning of the handler 

the SIGNATURE word two 
(our handler starts 

; with a 

short jump). See if it's us, and 

if it isn't, install us. 

emp 

word ptr es:[si+2], SIGNATURE ; 

this us? 

jnz 

INSTALL 

not yet--instal1 us 


; Toggle the on/off setting. The ACTIVE flag lives four bytes beyond 
; the handler—let's flop its setting. 


mov 

al, es:[si+4] 

; pick up running flag 

xor 

al, 1 

; flip the bit 

mov 

es:[si+4], al 

; replace it 

; Okay, 
; our 

we now have AL as the new 

current state. 

state. Give a message saying 

mov 

dx, offset m$RUNNING 

; for now, assume it's running 

emp 

al, 1 

; were we right? 

jz 

MSG N SPLIT 

; yes, take this 

mov 

dx, offset m$OFFNOW 

; report "off" 


; When we get here, DX is pointing to a status message. Print it 
; and leave. 

MSG_N_SPLIT: DOS PRINT_MESSA6E ; "print message" function 

ret ; goodbye! 

; If we get to this spot, it's the first time that the program has 
; been run. Install our own handler into the interrupt vector, 

; report this event with a message, and let DOS know we want to stay 
; around. 

INSTALL: 

mov al, PRINTER_INTERRUPT ; printer interrupt, please 

DOS SET_VECTOR HANDLER ; DOS function 25h is "set 

; interrupt" 

DOS PRINT_MESSAGE m$NOWREADY 

; Everything's complete. Leave the program via INT 27H with DX 
; pointing to the end of the resident part, and DOS will keep 
; the important stuff around while freeing up the memory occupied 
; by the part that's not part of the interrupt handler per se. 

mov dx, offset LAST+1 ; point to the end of the 

; fixed part 

int 27H ; end-but-stick-around 


; Three status report messages. 

m$NOWREADY db "X20ki installed and running.$" 

m$RUNNING db "X20ki reactivated. 

m$0FFN0W db "X20ki temporarily deactivated. 

MAIN endp 

CSEG ends 

end HOME 


MicrcWay '" 8087 SUPPORT and FORTRAN 


REALTIME MULTI-TASKING/ 
MULTI-USER EXECUTIVE-RTOS 

RTOS is a MicroWay configured version of 
iRMX-86. Includes ASM-86, LINK-86, LOC-86, 
LIB-86, and the ROM Hex Loader.$600 

87 FORTRAN/RTOS”* - our adaptation of 
the Intel Fortran-86 Compiler generates in line 
8087 code using all 8087 data types Including 
80-bit reals and 64-bit integers. The compiler 
uses the Intel large memory model, allowing 
code/data structures of a full megabyte, and 
supports overlays Includes RTOS and support 
for one year.$1350 

RTOS DEVELOPMENT PACKAGE 

includes 87FORTRAN, 87PASCAL, PL/M-86, 
Utilities TX Screen Editor and RTOS.... $2500 

OBJ-ASM” a multipass object module 
translator and disassembler. Produces 
assembly language listings which include public 
symbols external symbols and labels 
commented with cross referencea Ideal for 
understanding and patching object modules 
and libraries for which source is not 
available.$200 


*Formerly MicroWare, Inc. - not 
affiliated or connected with 
MicroWare Systems Corporation 
of Des Moines, Iowa. 


Micro 

l/\lay 


P.O. Box 79 
Kingston, Mass 
02364 USA 
(617) 746-7341 


MWS'286 Configured to your specifica¬ 
tions our computer runs RTOS-286 or XENIX. 
Includes one Intel compiler, seven slot multibus 
chassis hard dIsK streaming tape backup and 
Intel Service Contract Six to twenty times faster 
than your PC.CALL 

87BASIC'“ includes patches to the IBM 
Basic Compiler and both runtime libraries for 
USER TRANSPARENT and COMPLETE 8087 
support Provides super fast performance for all 
numeric operations including trigonometries 
transcendentals addition, subtraction, 
multiplication, and division.$140 

87MACRO“ - our complete 8087 software 
development package. It contains a “Pre-pro¬ 
cessor,” source code for a set of 8087 macros, 
and a library of numeric functions including 
transcendentals, trigonometries, hyperbolics 
encoding, decoding and conversions... $150 

87 DEBUG"' - a professional debugger with 
8087 support a sophisticated screen-oriented 
macro command processor, and trace features 
which include the ability to skip tracing through 
branches to calls and software and hardware 
interrupts Breakpoints can be set in code or on 
guarded addresses in RAM.$150 

87 BASIC/IN LI NE“ generates inline 
8087 code! Converts the IBM Basic Compiler 
output into an assembly language source listing 
which allows the user to make additional 
refinements to his program. Real expression 
evaluations run five times faster than in 
87 BASIC.$200 


YouCan 

TalkTbUs! 


8087-3 CHIP $175 

including DIAGNOSTICS and 180-day warranty 

64K RAM Set $47“ 

UATRIXPAK- manages a MEGABYTE! 

Written In assembly language, our runtime 
package accurately manipulates large matrices 
at very fast speeds Includes matrix inversion 
and the solution of simultaneous linear equa¬ 
tions Callable from MS Fortran 3.2, 87 MACRO, 
87BASIC, and RTOS.each $150 

87/88GUIDE .$30 

MICROSOFT FORTRAN 3.2.... $239 
MICROSOFT PASCAL 3.2 $209 

These IEEE compatible compilers support 
double precision and the 8087 

MICROSOFT C COMPILER Includes 
Lattice C and the MS Librarian.$350 

LATTICE C with 8087 support.$350 

FLOAT87 for MS C.125 

SuperSoft Fortran 66.329 

STSC APL^ PLUS/PC.500 

TURBO PASCAL.45 

TURBO PASCAL with 8087 Support.85 

SIDEKICK.45 

HALO GRAPHICS.CALL 

GRAPHMATIC.125 

ENERGRAPHICS.295 

Professional BASIC.295 

COSMOS REVELATION.850 

SCO XENIX 595 

UnIsource VENIX/86 .~rr“'^T.‘T..800 

MAYNARD WS1 HARD DISK.995 

MAYNARD WS2 HARD DISK.1170 

MAYNARD ELECTRONICS Boards.CALL 

NO CHARGE FOR CREDIT CARDS 
ALL ITEMS IN STOCK 
CALL FOR COMPLETE CATALOG 


CIRCLE NO. 174 ON READER SERVICE CARD 

















































My computer keeps track of B5f)00 cubic 
feet of wholesak autoparts.^^ 

The more work 
you do, the more you 
need to store. And 
the harder it is to 
work with stacks of 
floppy diskettes. 


Sysgen-II-G™ hard 
disk systems store 
everything—up to 
20 Megabytes— 
conveniently. You 
can look at any 
program or file in 
seconds. But... 


^^My Sysgen hard disk stores 
thewh^lotand 
runs a whole lot faster.^^ 


Any hard disk can 
fail—and lose your 
information. So 
every Sysgen-II-G 
hard disk includes 
‘/j" cartridge tape 
back-up—up to 20 
Megabytes per 
cartridge. (We make 
back-up systems for 
other hard disks, 
too.) So you can 
protect your files in 
minutes. Instead of 
spending hours 
re-entering them. 


**Aml 

Msktsmeskep 

atnight.*^ 


%sgen. 


Because a hard disk without tape 
just doesn’t make sense. 


Sysgen products for the IBM* PC, PC and other 
personal computers: Economical, 10- and 20-Megabyte 
hard disk systems with tape back-up. Or 10-Megabyte 



tape back-up for the IBM PC XT. 

Go to your local computer dealer. Ask for a 
demonstration of Sysgen back-up systems. And find out 
how to make sense of your storage. 

47853 Warm Springs Blvd., Fremont, CA 94539 
(415) 490-6770 Telex 4990843 

SYSGEN 

INCOR PORATED 


IBM PC-XT and IBM PC are trademarks of International Business Machines Corporation. SYSGEN-II-G and IMAGE are trademarks of Sysgen, Incorporated. 








PC-DOS 2.0 
Version: l .O 

/NSI n ON TATE ■ 

10150 NMoitl Jottoraon Otv<1. 

Culvor City. CA 00230 (213) 204-5570 
TELEX 004228 A3MTATE CULV 








Mcwe power 

tO)OU. 



Remember the magic you 
expected when you first purchased 
a PC? 

It's here. 

dBASE ni™ is the most power¬ 
ful database management system 
ever created for 16-bit 
microcomputers. It puUs 
every ounce of energy 
out of your PC and puts 
it to work. 

On top of that, it's 
fast and it's easy. ^ 

You've never seen 
anything like it. 

dBASE in can handle over a biUion 
records per file, limited only by your com¬ 
puter system. You can have up to ten files 
open, for sophisticated applications pro¬ 
grams. 

When you have two related files, infor¬ 
mation in one can be accessed based upon 
data in the other. 

dBASE in now handles procedures, 
parameter passing and automatic variables. 
You can include up to 32 procedures in a 
single file. With lightning speed. Because 
once a file is opened, it stays open. And 
procedures are accessed duectly. 

Easier than ever. 

dBASE m uses powerful yet simple 
commands that are the next best thing to 
speaking English. 

If you're unsure of a command, HELP 
will teU you what to ask for. 

n you don't know what command 
comes next, a command assistant does. AH 


you have to know is what you 
want it to do. 

Our new tutorial/manual 
will have you entering and 
viewing data in minutes rather 
than reading for hours. 

And to make matters 
easier, you get a full screen 
report setup for simple infor¬ 
mation access. 

Faster than no time at all. 

dBASE HI isn't just fast. It's ultra-fast. 
Operating. And sorting. Even faster^ is no 
sorting. Because dBASE HI keeps your 
records in order, so you really don't have to 
sort anything. Unless you want to. Then 
watch out! 

What about dBASE II®? 

It's stiU the world's best database man¬ 
agement system for 8-bit computers. And 
it's still the industry standard for account¬ 
ing, educational, scientific, financial, busi¬ 
ness and personal applications. 

Tap into our power. 

For the name of your nearest authorized 
dBASE HI dealer, contact Ashton-Tate, 10150 
West Jefferson Boulevard, Culver City, CA 
90230. (800) 437-4329, ext. 333. In Colorado, 
(303) 799-4900. 

CIRCLE NO. 300 ON READER SERVICE CARD 


/SHTDN-TOE 


©Ashton-Tate 1984. All rights reserved. dBASE III and Ashton-Tate are 
trademarks and dBASE II is a registered trademark of Ashton-Tate. 






New Release 1.8 — SOLID GOLD 


CocleSmith'"-86 


|B;fabcode.COM* 


■CodeSmith-86" 


Also runs on some IBM-PC Compatibles 


PL ZR NC l\IV UP NA PE El 



AX=8086 

BX=D000 

CX=0000 


33=1983 

03=1984 

E3=1985 

C3=2001 

IP=0001 


2001:0000 

2001:0001 

2001:0004 

2001:0007 

2001:0000 

2001:000E 

2001:0011 

2001:0013 

2001:0015 

2001:0015 

2001:0019 

2001:0016 


53 
9BDEC2 
BB3100 

803E5E- 

7305 

BB0100 

EB02 

F2AB fflWH 

80AD63- 

240C 

45 


OJNIT: 


BX ;TAG A LINE 

8T(2),3T 

BX,Offset VECTOR_TABLE_2 

DOS_VERSION_MUM,T ;BREAKPOINT SET 

TRA8H_IT 

BX,Offset VECT0R,TABLE_1 

3hopt L0NG_LABEL8_ARE_0K_A6_Y0U_LIKE 

STOSW ;STBP 777th TIME 


m CMP BOS-VERSION. 

JAE TRA8H_IT 

MOV BX,0ffset VECTOI 

JMP 3hopt LONG.LAE 

TRASH-IT: REPNZ STOSW 

LONG LABEL3_ARE_0K_A8_Y0U_LIKE: 

. LEA BP,WIERD_CODE 

AND AL,00011100B 

DB 69 


;BREAKPOINT SET 


iCHANGE RADIX 


D08_VERSI0N_NUM 


MEMORY 

Absolute Address=03C9E 3 egment:Dffset=03C4:005E 

'2I 


41 53 43 49 49 20 53 55-50' 50 4F 52 54 20 M 20 

20 20 20 20 43 6F 64 65-53 60 69 74 68- 20 38 36 

20 40 41 4B 45 53 20 44-45 42 55 47 47 49 4E 47 

20 41 20 42 4C 41 53 54-21 20 20 20 20 20 20 20 


AGCII GUPPORT 
— Code3mith-8G 
MAKE3 DEBUGGING 
A BLA3T! 


It’s here-THE Multi-Window Interactive Debugger that’s STATE-OF-THE-ART. 





Scroll Up/Down thru full-screen disassemblies & memoiy dumps 
Load and Write Commands much easier, more powerful than DEBuvj. 

“Snapshot” a complete debugging state onto disk-resume later 
passpoints and execution path counters 

SCREENSAVE mode saves and restores user’s graphic display when breakpoint hit 
* Disassemble selected ranges of memoiy code to disk—compatible with IBM Assembler 
on data Read/Write or memory range access 

Hot-Line technical support 

The Professional’s Choice— CodeSmhh-86 

\ Multiple copies purchased by: 

Lotus Development Corp., MicroPro, VisiCorp, IBM. 

\ Requires MS-DOS & 160K RAM. 

OEM and dealer inquiries invited. 

VISURL RG€ 

642 N. Larchmont Blvd. • Los Angeles, CA 90004 

CIRCLE NO. 140 ON READER SERVICE CARD 
CodeSmith.TM International Arrangements, Inc. 

MS, TM Microsoft Corp. 

IBM, TM International Business Machines Corp. 







An excerpt from 

Bluebook of Assembly Routines 

for the IBM PC 


S tring manipulation is an important part of computing that is useful in 
text editing and database management. The assembly language rou¬ 
tines in this article are fundamental to both of these application areas. 
The first two routines, called LOWERCASE and UPPERCASE, convert 
characters within a string from upper-case to lower-case and from lower¬ 
case to upper-case. The next two—STRSEARCH and STRINSERT—each 
require two input strings. STRSEARCH searches for a copy of one string in 
another, and STRINSERT inserts a copy of one string within another. 

Next are two routines—LEXSEARCH and LEXINSERT—that require a 
string and a list of strings as input. These routines deal with lexigraphic- 
ally ordered strings. Lexigraphical order is another name for alphabetical or¬ 
der. It is important to understand, however, that for these routines the indi¬ 
vidual characters are ordered according to their ASCII code. For example, 
all upper-case letters precede lower-case letters. If lexigraphical ordering of 
the words is desired, the routines can be changed so that all lower-case let¬ 
ters are converted to upper-case before being used in comparisons. 


Editor's Note.- This is the third excerpt from Bluebook of Assembly Routines for the IBM PC, 
a Waite Group book by Christopher L Morgan. (Morgan is also the author, with Mitchell 
Waite, of 8086/8088 16-Bit Microprocessor Primer and Graphics Primer for the IBM PC.) 

This book is part of the New American Library series of IBM PC computer-language books 
that have been issued under the Plume/Waite imprint. 

The first excerpt appeared in the March issue of PC Tech Journal and dealt with assem¬ 
bly routines to control the graphics capabilities of the IBM PC. In April, the second excerpt 
was published; it concerned assembly routines to control sound on the IBM PC. —WF 

Copyright ® 1984 by The Waite Group 


September i984 


111 
















THE NEWS 
WEEKLY FOR 
IBM SYSHM 
MICRO 
COMPOTERS 



The first weekly newspaper designed to 
give key executives the latest 
IBM Personal Computer news and analyses— 
as soon as it happens! 


To keep your company in the 
forefront of today’s rapidly changing 
IBM Personal Computer technol¬ 
ogy you need timely information. 
Information that’s clearly written, 
bringing you the news the way you 
need it, when you need it. You need 
PC WEEK. 

PC WEEK is the first and only 
weekly newspaper devoted to IBM 
Personal Computer news—with the 
latest breaking stories as they 
develop. 

PC WEEK follows and reports the 
news—up to 48 hours before 
publication—so you learn what’s 
new when it’s new! You’ll find 
research updates, strategic analysis, 
new hardware and software 
reviews, insights on future industry 
concerns and controversies, and 
the timely information you need to 
help make you more productive and 
efficient. 

Every week you’ll find outstanding 
features and departments 
covering... 

• NEWS: PC WEEK brings you 
analytical reports on the 
major topics of the day. 
Product announcements and 


company changes are ana¬ 
lyzed and put into perspec¬ 
tive, helping you plan for 
future investments and 
developments. 

• STRATEGIES: Every week 
you get an in-depth profile of 
a leading user company and 
how they use their IBM and 
compatible personal com¬ 
puters. Case studies help you 
evaluate the success and 
failure of new applications— 
some you even may have 
been considering. 

• INDUSTRY TRENDS: Discover 
what’s happening behind the 
scenes in new product 
development from both hard¬ 
ware and software manufac¬ 
turers and what this could 
mean to the future of your 
company. 

• PRODUCT REVIEWS: In- 
depth reviews of important 
new hardware and software 
releases tell you what prod¬ 
uct is right for your operation, 
and the technical and finan¬ 
cial considerations involved. 


• FOCUS ON: The latest news 
and events in specific prod¬ 
uct areas are detailed every 
week. We cover file systems, 
3270 products, graphics 
software, input hardware, 
database managers, pro¬ 
gram generators, multifunc¬ 
tional applications—the 
information you need for your 
IBM installation. 

• BUYERS GUIDES: Special 
sections with careful evalua¬ 
tions and comparative charts 
to help you select the proper 
peripherals and software 
packages for your operation. 
From word processing to 
local area networks or com¬ 
patibles, you’ll find complete 
and unbiased reviews and 
listings. 

Your subscription to PC WEEK is 
complimentary if you qualify. Take a 
moment, fill out the Qualification 
Form at right and return it to 
PC WEEK today. 

PC WEEK, your vehicle to stay in 
the forefront of tomorrow’s IBM 
Personal Computer technology. 



Get the news you need every week, first hand, with PC WEEK. 

































Strings 


LEXSEARCH searches for the 
proper place to insert a string in a 
lexigraphically ordered list of 
strings, and LEXINSERT inserts a 
string in the proper place in a lexi¬ 
graphically ordered list of strings. 
LEXINSERT is built upon the ear¬ 
lier routines in that it calls 
LEXSEARCH to find the proper 
spot and then calls STRINSERT to 
make the insertion. 

The last three routines—COM¬ 
PARE, SWITCH, and BSORT- 


work with string arrays. COMPARE 
is used to compare two strings of 
equal length. It enables the user to 
compare two different entries of the 
same string array. SWITCH is used 
to switch two strings of the same 
length—for example, two different 
entries of the same string array. 

Both of these routines are needed 
by BSORT, which performs a bub¬ 
ble sort of a string array. Although 
bubble sort is not one of the fastest 
methods of sorting, it is easy to pro¬ 


gram, as is illustrated by the 
BSORT routine. Because this rou¬ 
tine is written in assembly lan¬ 
guage, it runs quickly despite the 
inherent slowness of the method. 

These routines take advantage 
of the 8088 string instructions. 
Notice how easy string scanning 
and comparing is when using these 
string instructions; the COMPARE 
routine has only one instruction 
besides the PUSHes and POPs to 
save the registers. imi—i 


Listing 1 LOWERCASE 

FUNCTION: This routine converts the characters 
in a string to lower-case. 

INPUT: Upon entry DS;BX points to a string. The 
first two bytes in the string form a 16-bit integer 
that specifies the length of the string. The remain¬ 
ing bytes contain the characters of the string. 
OUTPUT: Upon exit all alphabetical characters of 
the string are lower-case. 

REGISTERS USED: No registers are modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment must contain the string. 


ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 


; ROUTINE 

TO CONVERT STRING 

TO LOWER CASE 

lowercase 

proc far 


push 

bx 

; save registers 

push 

cx 


push 

ax 


; get the 

length 


mov 

cx,Cbx] 

; first two bytes contain the length 

Inc 

bx 

; point to beginning of text 

inc 

bx 


; loop through the bytes of 

the string 

lowercasel: 


mov 

al.Cbx] 

; get the character 

cmp 

al.'A* 

; below the upper case characters? 

jb 

lowercaseZ 

; skip if so 

cmp 

al.'Z' 

; above the upper case characters? 

ja 

lowercaseZ ; 

; skip if so 

or 

al.ZOh 

1 OR bit 5 into the byte 

lowercaseZ 



mov 

[bx],al ; 

; store the character 

inc 

bx ; 

; point to next character 

loop 

lowercasel 


pop 

ax ; 

, restore registers 

pop 

cx 


pop 

bx 


ret 



lowercase 

endp 



Listing 2 UPPERCASE 

FUNCTION: This routine converts the characters 
in a string to upper-case. 

INPUT: Upon entry DS:BX points to a string. The 
first two bytes in the string form a 16-bit integer 
that specifies the length of the string. The remain¬ 
ing bytes contain the characters of the string. 
OUTPUT: Upon exit all alphabetical characters of 
the string are upper-case. 

REGISTERS USED: No registers are modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment must contain the string. 

ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 


; ROUTINE TO CONVERT STRING 

TO UPPER CASE 

uppercase 

proc far 


push 

bx 

; save registers 

push 

cx 


push 

ax 


; get the length 


mov 

cx,[bx] 

; first two bytes contain the length 

inc 

bx 

; point to beginning of text 

inc 

bx 


; loop through the bytes of 

the string 

uppercasel: 



mov 

al.Cbx] 

; get the character 

cmp 

al.'a' 

; below the lower.case characters? 

jb 

uppercase? 

; skip if so 

cmp 

al.'z' 

; above the lower case characters? 

ja 

uppercase? ; 

; skip if so 

and 

al,5Fh 

; mask out bit number 5 

uppercase?: 



mov 

Cbx],al 

; store the character 

inc 

bx 

; point to next character 

loop 

uppercasel 


pop 

ax 

; restore registers 

pop 

cx 


pop 

bx 


ret 




uppercase endp 


September i984 


113 















Strings 


Listing 3 STRSEARCH 

FUNCTION: This routine searches for a copy of a 
source string within a destination string. 

INPUT: Upon entry DS;BX points to a source 
string and ES:DX points to a destination string. Each 
string begins with a 16-bit integer that specifies the 
length of the string. 

OUTPUT: Upon exit AL contains a return flag 
(0=not found, OFFh=found)— and if the search 
was successful DX contains the location of the first 
byte of the match in the destination. 

REGISTERS USED: Only AX and DX are modi¬ 
fied. They are used for output. 

SEGMENTS REFERENCED: Upon entry the 
data segment must contain the source string, and 
the extra segment must contain the destination 
string. 

ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 

; ROUTINE TO SEARCH FOR ONE STRING WITHIN ANOTHER 

strsearch proc far 

push si ; s*ave registers 

push d1 
push cx 


; get length of destination 

and point to first byte 

mov 

si.dx ; 

use source index 

lodsw 


get the length of destination 

mov 

cx,ax ; 

use the length as a count 

mov 

dx.si 

text begins here 

strsearch! 



; point indices to beginning 

of source and destination 

mov 

si.bx ; 

load source index 

mov 

di.dx ; 

load destination index 

; scan for match 


mov 

al,Csi+2] ; 

get the first character 

cld 

; 

forward direction 

repnz 

scasb ; 

scan for match 

jcxz 

strsearch2 ; 

quit if found no match 

; got a match of first characters - now check the entire string 

mov 

dx,di ; 

save current destination loc 

dec 

di ; 

beginning of word 

lodsw 

; 

get length of source 

xchg 

cx,ax ; 

use source count and save dest count 

repz 

cmpsb ; 

compare the two strings 

jcxz 

strsearch3 ; 

it*s a match if no more source 

; continue 

the scan 


xchg 

cx,ax ; 

use destination count 

jmp 

strsearch! ; 

back for more scanning of dest 

; no match 

is possible 


strsearch2: 



mov 

al ,0 ; 

unsuccessful outcome 

jmp 

strsearchexit 


; found a match 


strsearch3; 



dec 

dx 

point to beginning of match 

mov 

al.OFFh 

successful match 

jmp 

strsearchexit 



mommKcm 

mmHM/umsmm 


MOVING? 



Please let us know 6 weeks In ad¬ 
vance so you won't miss a single 
issue of PC TECH JOURNAL, 



Now you can put them online with Explain^*"... the docu¬ 
mentation system from Communication Sciences, inc. 

CS/'s Explain takes you a step beyond the editing/ 
printing cycle used for the traditional manual. With Explain, 
writers create and update documentation online, as a data 
base. And they don’t have to be programmers to do it. 

Once your documentation is online, it can stay online. 
Readers can get to it with the touch of a key, either directly 
from your applications or through Explain itself. 

User help. Program guides. Procedures. Standards. 
Put it all online with Explain, the paperless documen¬ 
tation system. 

For more information, please 
call us at (612) 332-7559, or write to 
Communication Sciences, Inc., 100 
North'Seventh Street, Minneapolis, 

MN 55403. 


« Copyright 1984, Communication 


CIRCLE NO. 173 ON READER SERVICE CARD 


Attach your old label where indicated and print 
your new address in the space provided. Please 
be sure to include your mailing label whenever 
you write us about your subscription. It helps us 
to serve you promptly. 

Write to: P.O. Box 2968, Boulder. CO 80322 


0 


Change address only 
Extend subscription 
Enter new subscription- 
one year $24.97 
Payment enclosed 
Bill me later 


□ Charge: 


0 


American Express 
Visa □ MasterCard 


Number. 


£xp. Date. 


Signature_ 

NEW ADDRESS HERE 

Name_ 

Address_ 


City_ 

State_Zip_ 

Add $12 per year in Canada and other foreign countries. 
Please allow 60 to 90 days for delivery of first issue. 


^ AFFIX OLD LABEL ^ 

If you have no label handy, print o\6 address here: 


Name. 


Address. 


City_ 

State Zip 


114 


































AND NOW, BESIDE COMPAQ, SPERRY, COLUMBIA, CORONA, AND ZENITH, TOO. 


Beside Your iBiVi PC 
Or XX The Best Box 

YOU Can Buy, 

The Bernoulli Box: The Superior Shnage Sdution. 



For owners and users of the IBM PC, 

XT, COMPAQ, Sperry, Columbia, Corona, 
and Zenith micros, where to put and secure 
the substantial amounts of data they are 
processing can get to be quite a problem. 

Well, IOMEGA has quite a solution. 

We call it The Bernoulli Box. 


Hard Disk Performance And 
Reliability. Flexible Disk Economy 
And Convenience. 

The Bernoulli 
Box is a mass stor¬ 
age system that 
uses 10-megabyte 
removable car¬ 
tridges to deliver 
incredible ver¬ 
satility and 
virtually 
unlimited 

storage capacity. Powerful primary stor¬ 
age. Quick and efficient backup. With the 
performance, data integrity, mechanical 
reliability, and low cost per megabyte 
equal to Winchester hard disks. 


A Handful of Cartridges Or 
A Desktop Full Of Hardware. 

You Decide. 

The bottom-line beauty of The Bernoulli 

Box is that when 
you need more 
mass storage, you 
buy more car¬ 
tridges—not more 
iron. So you 
save space, 
time, money, 
and get higher 
performance 
and a more 

reliable storage solution to boot. 

Check Out The Bernoulli BoxToday. 

Computer dealers know a good idea 
when it comes around. Many are cur¬ 
rently stocking The Bernoulli Box in both 
single- and double-drive models. 

For the dealer nearest you, contact 
IOMEGA at (801) 776-7330. 




IOMEGA Corporation 
1821 West 4000 South 
Roy, Utah 84067 


CIRCLE NO. 102 ON READER SERVICE CARD 











n 


LATTICE. 

C Compilers 


“My personal preferences are Lattice C in the top category for its 
quick compile and execution times, small incremental code, best 
documentation and consistent reliability;..." 

BYTE AUG. 1983 
R. Phraner 


”... programs are compiled faster by the Lattice C compiler, and It 
produces programs that run faster than any other C compiler avail¬ 
able for PC-DOS." 

PC MAGAZINE JULY 1983 
H. Hinsch 


“... Microsoft chose Lattice C both because of the quality of code 
generated and because Lattice C was designed to work with 
Microsoft's LINK program." 

PC MAGAZINE OCT. 1983 
D. Clapp 

"Lattice is both the most comprehensive and the best documented of 
the compilers. In general it performed best in the benchmark tests." 

PERSONAL COMPUTER AGE NOV 1983 
F. Wilson 


"This C compiler produces good tight-running programs and pro¬ 
vides a sound practical alternative to Pascal." 

SOFTALKAUG 1983 
P. Norton 


"... the Lattice compiler is a sophisticated, high-performance pack¬ 
age that appears to be well-suited for development of major applica¬ 
tion programs." 

BYTE AUG 1983 
Houston, Brodrick, Kent 


To order, or for further information 
on the LATTICE family of compilers, call or write 
LATTICE, INC. 

P.O. Box 3072 
Glen Ellyn, IL 60138 
(312) 858-7950 TWX 910-291-2190 




CIRCLE NO. 128 ON READER SERVICE CARD 



IBEX COMPUTER CORP. 

20741 Manila Street, 
Chatsworth.CA 91311 
(818)709-8100 
TWX 910-493-2071 


9-TRACK MAG. 

TAPE SUBSYSTEM 

for the 

IBM PC 


For information inter¬ 
change, backup and archi¬ 
val storage, IBEX otters a 
9-track, IBM format-com¬ 
patible y 2 "magnetic tape 
subsystem for the IBM PC, 
featuring: 

■ 42 M-Bytes on a single 
reel. 

■ Automatic loading. 

■ IBM format 1600 cpi. 

■ Software for PC-DOS, 
MS-DOS or CPM-86. 

Write, phone or TWX 
for information 


CIRCLE NO. 124 ON READER SERVICE CARD 


Strings 


strsearchexit: 


pop 

cx 

; restore registers 

pop 

di 


pop 

si 


ret 



strsearch 

endp 



Listing 4 STRINSERT 

FUNCTION: This routine inserts a source string 
in a specified place in a destination string. 

INPUT: Upon entry DS:BX points to the source 
string, ES:BP points to the destination string, and 
ES:DX points to the spot in the destination string at 
which the source is to be placed. Each string begins 
with a 16-bit integer specifying the string's length. 
OUTPUT: Upon exit the destination string has the 
source string inserted in the proper place. The 
length of the destination string is increased. 
REGISTERS USED: No registers are modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment must contain the source string; the ex¬ 
tra segment must contain the destination string. 
ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 


; ROUTINE TO INSERT ONE STRING WITHIN ANOTHER 

•.addressing equates 


essorc 

equ es:[si] 

; equate for source in extra seg 

dsdest 

equ byte ptr[di] ; equate for usual destination 

strinsert 

proc far 


push 

si 

; save registers 

push 

di 


push 

cx 


push 

ax 


; find current end of destination string 

mov 

si ,bp 

; start of string 

add 

si,es:[si] 

; point to next to last byte 

inc 

si 

; adjust for length information 

; find new 

end of destination string and update length 

mov 

d i, s i 

; get old end of destination 

mov 

ax ,[bx] 

; get length of source 

add 

di ,ax 

; new end of destination 

add 

es:[bp],ax 

; new length of destination 

; move tail 

of destination 

string out of the way 

mov 

cx.si 

; SI - DX + 1 is the count 

sub 

cx.dx 


inc 

cx 


std 


; backward direction 

repmovs 

dsdest,essorc 

; move the tail 

; move source string into place 

mov 

di ,dx 

; destination of move 

mov 

si ,bx 

; source of move 

cld 


; forward direction 

lodsw 


; length of source 

mov 

cx ,ax 

; the count 

rep 

movsb 

; make the string move 

strinsertex 

it: 


pop 

ax 

; restore registers 

pop 

cx 



116 


PC Tech Journal 


















































If you’ve ever found yourself searching 
for a calculator or a notepad when 
you’ye gbt a computer in front of 
youv dien you know why we came up 
with Sidekick©. 


INTRODUCTORY OFFER 


Anilabk only for the IBM PC, XT, jr and Compatibles. 


Please be sure your eornputer is an IBM PC^, XT, jr., or true conipatible! 
NAME 


WBORlAnD 

■v INTERNATIONAL 

Borland International 
4113 Scotts Valley Driv.e - ■ 
iScotts Valley, California 95066 
TELEX: 172373' . SE6 


ADDRESS • 

CITY/STAIT/ZIP 

TELEPHONE 


.California resideritsvad^ fe^^^^ Outside U.S.A. add $15:00. {If outside of 

U.S.A. payment-rriust pd liy bank draft payable m-the U.S. and in U.S. dollars.) Sorry, 


G.O.D'. or Purohase Orders: 


Something Totally New in Applications SotBha^e From Boirlahdy 
The FoUcs tl^o Mahe Ti^ho Pascal.^^ 


WHETHER YOimE RtJNNING 
1-2-3, WORDSTAR, 
dBASEn OR WHATEVER .. . 

JUST A KEYSTROKE 
ABiDASlDEiaCK 
RTimOW OPiJVS ... 

• acalcuiator 

•ANOl^AD 

• AN APPOUVTMENT 
CALENDAR 

• AN AUiO DIALER 
•ANASCDTABLE 

• AND MUCH MORE 

ALLATONCE . . . ORONE AT 
AITME. ANYWHERE ON 
THE SCREEN YOU LIKE. 

ANOTHER KEYSTROKE, 

AND YOUnRE RIGHT 
WHERE YOU LEFT OFF 
IN YOUR ORIGINAL 
PROGRAM! 

(you never really left!) 


Something brand new. Crafted in Assembly 
language as carebiUy as Borland’s famous l\irbo 
Pascal©, so that it’s lightning-fast and as compact as 
only Borland knows how to make it! With a notepad 
that has a full-screen editor that saves your notes to disk. 
You can even swap information back arid forth between 
your applications software and your Sidekick©. 

Suppose you’re working with a spreadsheet, ^nd you 
suddenly have an important idea. Just hit the button, a 
window opens, you write the note and hit the button 
again. You’re right back where you left off in the 
spreadsheet. 


Need to make a phone call? Whether the number is in . . 
an existing database, your own Sidekick, phone directory, V - 
or you’ve just typed it on the screen ., . put;the cursor:;;. . 
next to the number, hit the keystroke, and Sidekick dials ■ : . 
for you!* . , ; ' ; 

There’s lots more, too. You can move the Sidekick 
windows anywhere on the screen you like. And you can L- ■■ 
have as many on screen at a time as you. need: . - • 

. We designed it because we needed it. If you’ve ever 
been writing a report and needed’ to do a quick calcu- v ' . 
jation, or jot down a note, thea you understand-why^; ■ ^ 
■^Only \yith Hayes Smartmpdem and compatibles. '. . 


YOU CAN OIWER YOIJR COPY OF SIDEIQCK® 

For Visa and MasterCard orders call Toll Free 1-800-255-80Q8 in California 1-800-742^1133 

(lines open 24 hours, 7 days a week) Dealer and Distributor Inquiries Welcome 408-438-8400 


^SIDEKIOK® $49.95 

( plus $5.00 shipping arid handling 
•Shipped UPS) V 

Check , D Money Order (□ 

' VISAp : MasterCard □ 

- ■ 


mratiori ©ate 



















Strings 


pop 

di 

pop 

si 

ret 


strinsert 

endp 


Listing 5 LEXSEARCH 

FUNCTION: This routine searches a lexigraphic- 
ally (alphabetically) ordered list of word strings for 
the proper place to insert a new word. 

INPUT: Upon entry DS:BX points to a source word 
string, and ES-.BP points to the ordered list of words. 
The source word string begins with a 16-bit integer 
that specifies the length of the string and then con¬ 
tinues with the bytes of the string. The last byte 
must be a carriage return symbol (ASCII 13). The 
destination list of words begins with a 16-bit integer 
that specifies the length of the string in character 
bytes and continues with words that consist of 
ASCII characters. The words are separated by car¬ 
riage return symbols (ASCII 13). 

OUTPUT: Upon exit AL contains a return flag 
(O==not found, OFFh=found). If the search was suc¬ 
cessful ES:DX contains the location of the proper 
place to insert the new word. If the word was al¬ 


M^TSOFTPBODUCTSINC 

A subsidiary of the University of Waterloo 

Announces 

a full screen editor and a family 
of language interpreters for the 
IBM Personal Computer 



For further information contact: 


WATSOFT Products Inc. (519) 886-3700 

158 University Ave. Telex No.: 06-955458 

Waterloo, Ontario- 
N2L 3E9 

CIRCLE NO. 228 ON READER SERVICE CARD 


ready present then ES:DX points to the location of 
this word in the destination string. 

REGISTERS USED: Only AX and DX are modi¬ 
fied because they are used for output. 

SEGMENTS REFERENCED: Upon entry the 
data segment must contain the source string; the ex¬ 
tra segment must contain the destination word list. 
ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 


; ROUTINE 

TO SEARCH FOR 

A WORD IN AN ORDERED LIST OF WORDS 

lexsearch 

proc far 


push 

si 

; save registers 

push 

di 


push 

cx 


; point to beginning of 

list.and get its length 

mov 

di ,bp 

; beginning of list 

mov 

cx,[di] 

; get length 

inc 

di 


inc 

di 



compare source word with words in the list 


lexsearchl; 

mov dx,di ; save beginning of dest word 

; forward direction 



OPT-TECH SORT™ 


SORT/MERGE program for IBM-PC & XT 

Now also sorts dBASE II files! 

• Written in assembly language for high performance 
Example; 4.000 records of 128 bytes sorted to give 

key & pointer file in 30 seconds. COMPARE! 

• Sort ascending or descending on up to nine fields 

• Ten input files may be sorted or merged at one time 

• Handles variable and fixed length records 

• Supports all common data types 

• Filesize limited only by your disk space 

• Dynamically allocates memory and work files 

• Output file can be full records, keys or pointers 

• Can be run from keyboard or as a batch command 

• Can be called as a subroutine to many languages 

• Easy to use. includes on-line help feature 

• Full documentation — sized like your PC manuals 

• $99 —VISA, M/C, Check, Money Order. COD, or PO 
Quantity discounts and OEM licensing available 

To order or to receive additional Information 
write or call; 

OPT-TECH DATA PROCESSING 

P.O. Box 2167 Humble, Texas 77347 
(713) 454-7428 

Requires DOS, 64K and One Disk Drive 


118 


CIRCLE NO. 179 ON READER SERVICE CARD 



















^VERSION 2.0 


This is THE PASCAL COMPILER 
YouVe Been Hearing About 

‘Turbo is a winner.” 

PC Tech Journal, 
July 1984 

i|9.95 

; .^ you don’t have CP/M [for 
'.i/ your Appl^, Turbo Pascal is 
reason enough to buy it.’ ’ 
Cary Hara 
' . SoftciLk/Apple, May 1984 


Than YouWe Heai^f 

• Windowing (IBM PC, XT, jr. or true compatibles) 

• Color, Sound and Graphics Support (IBM PC, XT, jr. or true compatibles) 

• Optional 8087 Support (available at an additiona,l charge) 

• Automatic Overlays 

• A Full-Screen Editor thaPs even better than ever 

• Full Heap Management—via dispose procedure 

• Full Support of Operating System Facilities 

• No license fees. You can sell the programs you write with Turbo Pascal without extra cost. 

Yes. We still include Microcalc . . . the sample spreadsheet written with Turbo Pascal. You can study the 
source code to learn how a spreadsheet is written . . . it’s right on the disk.* And, if you’re running Turbo 
Pascal with the 8087 option, you’ll never have seen a spreadsheet calculate this fast before! 

*Except Commodore 64 CP/M, 

Order Your Copy of TURBO PASCAL VERSION 2.0 Today 

For VISA and MasterCard orders call toll free: 1-800-255-8008 

In California: 1-800-742-1133 

(lines open 24 hrs, 7 days a week) Dealer &. Distributor Inquiries Welcome 408-438-8400 




tlight^t interest in Pasi 

Bruce Webster, Softalk 


Choose One (please add $5.00 for ship' 
ping and handling for U.S. orders. Shipped 
UPS) 

_Turbo Pascal 2.0 $49.95 -h $5.00 

-Turbo Pascal with 8087 support 

$89.95 + $5.00 

-Update (1.0 to 2.0) Must be accoru' 

panied by the original master $29.95 
+ $5.00 

_Update (1.0 to 8087) Must be 

accompanied by the original master 
$69.95 4- $5.00 


Check_ Money Order 

VISA _ Master Card _ 

Card #: _ 

Exp. date: _ 

» BORIAHD 

■9 INTERNATIONAL 

Borland International 
4113 Scotts Valley Drive 
Scotts Valley, California 95066 
TELEX: 172373 


My system is: 8 bit _ 16 bit _ 

Operating System: CP/M 80_ 

CP/M 86_ MS DOS_ PC DOS_ 

Computer: _ 

Disk Format: _ 

Please be sure model number 6? format are correct. 

Name: _ 

Address: _ 

City/State/Zip: _ 

Telephone: _ 

California residents add 6% sales tax. Outside U.S.A. add $15.00 (If 
outside of U.S.A. payment must be by bank draft payable in the U.S. 
and In U.S. dollars.) Sorry, no C.O.D. or Purchase Orders. E6 





















Strings 


WORK SMARTER... 

.. .With Auto Key 

If you use an IBM PC you (ru/y need AutoKey. 

SAVE HUNDREDS OF HOURS OF TYPING 

With AutoKey you can create single key abbreviations 
for frequently typed text or any other sequences of key¬ 
strokes on your computer. So, 

you never have to type the same things over and 
over again, again, 

AutoKey is the perfect mate for your spread¬ 
sheet, word processor, text editor or other 
software. 

MAKE YOUR SOFTWARE EASIER TO USE 

No need to remember tedious software commands 
any more. 

AutoKey lets you concentrate on the problem 
instead of the mechanics of working with the 
computer. 

PERSONALIZE OFF-THE-SHELF SOFTWARE 

Personalize your software so that the same keys have 
the same functions in all your programs. 

AUTOKEY IS EASY AND FUN TO USE 

* You will learn how to use AutoKey in less than 15 
minutes. After that you’ll wonder how you ever got 
along without it. 

* Create key abbreviations ds you work by the 
press of a button. 

* Key abbreviations can be stored in files for future 
recall. 


PERFORMANCE UNEXCELLED 

Autokey provides unsurpassed performance at a very 
low cost. 

$79 Try it for 30 days. If you are not completely 
satisfied, simply return your diskette for a full refund. 

Strategic Automation, Inc. 

33 Cherry Hill Drive, Danvers, MA 01923 
617/777-5104 Support: 617/777-5161 
MC/VISA Accepted 

AutoKey and IBM PC are trademarks of SAI and IBM Corp. 

CIRCLE NO. 156 ON READER SERVICE CARD 


cld 


; forward direction 

; point to beginning of i 

source 

moY 

si ,bx 

; point to beginning of source 

inc 

si 


inc 

si 


; compare 

source word with a word of the list 

lexsearch2: 


• ; check for end of list 


jcxz 

lexsearchS 

; end of list - insert it 

; set up carriage return 

as character for scanning 

mov 

al ,13 

; scan for carriage return 

; check for end of source word 

cmp 

Csij.al 

; source byte = carriage return? 

je 

lexsearch4 

; end of source word found 

; check for end of destination word 

cmp 

es:[di],al 

; dest byte = carriage return? 

je 

lexsearch3 

; no match - go to next word 

; compare 

character by character 

dec 

cx 


cmpsb 


; check for match 

je ’ 

lexsearch2 

; matched - check next character 

jb 

lexsearchS 

; too high - this is the place 

; scan for 
1exsearch3 

next carriage 

return 

repnz 

scasb 

; scan until carriage return 

jmp 

lexsearchl 

; next word 

end of source word was 

found 

lexsearch4 



cmp 

[di],al 

; dest character = carriage return? 

je 

lexsearch6 

; end of destination word? 

; found a 

spot to insert 

the word 

lexsearchS: 


mov 

al,0FFh 

; success 

jmp 

lexsearchexit 


; word is 

already present 


lexsearch6 



mov 

aliOOh 

; already there 

jmp 

lexsearchexit 


lexsearchexit: 


pop 

cx 

; restore registers 

pop 

di 


pop 

si 


ret 



lexsearch 

endp 



Listing 6 LEXINSERT 
FUNCTION: This routine inserts a word string in 
the proper place in a lexigraphically (alphabetically) 
ordered list of words. 

INPUT: Upon entry DS-.BX points to a source word 
string: ES;BP points to the ordered list of words. The 
source word string begins with a 16-bit integer that 
specifies the length of the string. The last byte must 
be a carriage return symbol (ASCII 13). The destina¬ 
tion list of words begins with a 16-bit integer that 
specifies the length of the string and continues with 
words that consist of ASCII characters. The words 
are separated by carriage return symbols (ASCII 13). 
OUTPUT: Upon exit the string is inserted properly. 


120 


PC Tech Journal 











Great Lakes offers you add-on 
storage and tape hack-up at an 
unforgettably attractive price 

So you’re about to outgrow the storage capacity of your 
IBM PC™ or compatible computer? And now you’re biting 
your nails over the cost of adding more bytes. 

No need! Consider the eminently memorable combination 
price of the Great Lakes Superior 10™ hard disk subsystem 
and the Great Lakes Quartermaster 23™ tape back-up module. 
The Superior 10—$1495 

Not only is our $1495 price considerably lower than the 
nearest 10-megabyte competitor, but we offer the best 
dollar-per-megabyte ratio for the 23mb and 40mb subsystems 
as well. The ratios? lOmb at $149 per mb; 23mb at $98 per 
mb (retail $2249); 40mb at $70 per mb (retail $2795). 

$995 


Quartermaster 23 

This optional 23mb tape back-up module is simple to 
use and efficient as well. Take, for example, our remarkable 
Selecta-File™ feature. This (4-inch tape drive module 
allows you to back up and restore data using selective 
file-by-file data transfer (or full streaming). And it masters 
all this for just $43 per megabyte. 

Complete and ready-to-use 

When you buy a Superior hard disk subsystem, every¬ 
thing is there, ready to operate at high speed. This includes: 
high quality fixed hard disk, controller board, software that 
runs on DOS 1.1 and 2.0 (CP/M 86™ and other operating sys¬ 
tems available), host adaptor board, integral power supply, 
cables, external custom chassis with additional space for our 
tape back-up, and documentation. 

Our line is expansive, not expensive 

Need even more storage for your IBM PC or compatible? 
We offer hard disk subsystems including 65,110 and 140mb 
—all designed for superb quality at the very lowest possible 
prices. And we stand behind all our products with our 90-day 
warranty. That’s because our quality lives up to our first name, 

Available at leading dealers everywhere 


COMPUTER PERIPHERALS, INC. 

We live up to our first name 

2200 W. Higgins Road, Hoffman Estates, IL 60195 

1-800-323-6836/1-312-884-7272 


CIRCLE NO. 122 ON READER SERVICE CARD 
”*IBM PC is a trademark of International Business Machines Corporation. 
"“Superior (10 through 140), Quartermaster 23, and,Seiecta-FiIe are trademarks of 
Great Lakes Computer Peripherals, Inc. 

"“CP/M 86 is a trademark of Digital Research. Inc. 














Strings 


REGISTERS USED: No registers are modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment and the extra segment must be equal, 
and they must contain the source string and the des¬ 
tination word list. 

ROUTINES CALLED: LEXSEARCH, 

STRINSERT 

SPECIAL NOTES: None 
CODE: 


; ROUT IKE 

TO INSERT A WORO 

IN AN OROEREO LIST OF WORDS 

lexinsert 

proc far 


push 

ax 

; save registers 

call 

lexsearch 

; search for match 

cmp 

a1,0 

; already there? 

je 

lexinsertexit 

; skip if so 

call 

str insert 

; insert the new word 

lexinsertexit: 


pop 

ax 

; restore registers 

ret 



lexinsert 

endp 




Listing 7 COMPARE 

FUNCTION: This routine compares two strings of 
the same length. 


INPUT: Upon entry DS:SI points to one string (the 
source) and DSsDI points to a second string (the des¬ 
tination). Both strings have lengths given by CX. 
OUTPUT: Upon exit the flags specify the relation 
of the source to the destination: 

1 = source string is less than destination string 
e = source string is equal to destination string 
g = source string is greater than destination 
string 

REGISTERS USED: Only AX is modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment contains the source string and the ex¬ 
tra segment contains the destination string. 

ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 


; ROUTINE 

TO COMPARE TWO 

STRINGS 

compare 

proc far 


push 

si 

; save registers 

push 

di 


push 

cx 


repz 

cmpsb 

; one compare does it! 

pop 

cx 

; restore registers 

pop 

di 


pop 

si 



ret 

compare endp 


Professional Lab and 
Business Graphics Software 
for Your IBM* PC 


SCIENTIFIC PLOTTER PC- 

Draws professional graphs of 
your data. Line or scatter plots, 
semi-log or loo-log plots, bar 
graphs, exploded pie charts, 
stock charts with high, low, 
close. 320 X 200 resolution in 4 
colors. Automatic or manual 
selection of axis length and posi¬ 
tion, tick marks and numeric 
labels. Features 20 plot symbols, 
error bars, multiple labels in 4 
orientations and versatile printer hardcopy. Format and data files may be 
saved on disk. Includes 11 demos on disk plus manual .$ 95 

CURVE FITTER-PC-Select the 
best curve to fit your data. 

Scale, transform, average or 
smooth. Interpolate (3 types), 
least squares fit (8 types), 
evaluate unknowns from fitted 
curves. Features auto-scaling, 
statistical evaluation of fitted 
curves, multiple labels in 4 
orientations, and versatile 
printer hardcopy. Format and 
data files may be saved on disk. 

Includes 5 demos on disk plus manual.$ 95 

SPECIAL: SCIENTIFIC PLOTTER-PC and CURVE FITTER-PC-on 1 
disk.$175 

Add $2.50 shipping on all U.S. orders. VISA or MASTERCARD orders 
accepted. 

•Trademark of International Business Machines, Inc. 

TM ■m- interactive microware, inc. 

11111 P O. Box 139, Dept. 237 

State College, PA 16804 

Phone: (814) 238-8294 • Telex: 705250 




G Graphics 
Editor 

A Fast, Powerful, Easy to Use drawing 
program that lets you create, edit, and store 
colorful images 

• Intricate detail 

• Easy to remember, single key commands 
• Variable cursor speed & brush width 
• User defined color combinations 
• Commands for basic geometric shapes 
• Images can be erased, repositioned, copied, 
mirrored, flipped 
• Save to disk / Load from disk 
• Images can be loaded into user's BASIC 
programs 

• "HELP" and "UNDO" commands 
• Text in variable sizes, colors, directions 
• Designed for the IBM PC and compatible 
machines with 128K RAM, single disk N 

drive, color graphics cap^ihty / 

Perfect for Artists, Designers, 

Animators, Programmers, Educators 

G Graphics Editor is available for $95 from /j // 

MICRO MARKETING ASSOCIATES g ' ^ 
3497 East Livingston Avenue 
Suite A 

Columbus, Ohio 43227 _ 

(614) 231-4956 




CIRCLE NO. 163 ON READER SERVICE CARD 


CIRCLE NO. 189 ON READER SERVICE CARD 



































GENERATES CUSTOMIZED 
INPUT SCREEN PROGRAMS 

IN ifaioe AND (?(a§{g®(L ... 


. . .BECAUSE YOUR 
TIME IS 

TOO VALUABLE 

only 8125'"' 

ITEM #3050 

(Includes shipping and handling) 

(N.Y.S. Res. Add 8y4% sales tax) 

BASIC or PASCAL Easily! 

Generate programs in BASIC or PASCAL. Your choice. 

Works with Turbo PASCAL * IBM * PASCAL or IBM BASIC (Interpreter and Compiler). 

Easy to use. Begin productive use in minutes! 

POWERFUL SCREENS 

Everyone can have professional quality screens to dress up any program. 

Generate compiex, colorful, effective screens In minutes. 



FULL FUNCTION SCREEN CREATION 

Simply “draw” input screens with word processor style editor. 

Advance screen creating features include; 

• Draw boxes, lines, etc. in seconds with unqiue character selection menu. 

• Repeat iast character in any direction. 

• Special color-select screen displays all available colors. 

• .Paint and Repaint sections of screen at any time. 

• Copy and Move sections of screen. 

• Insert or Delete characters and lines. 

• input field definition screen gives you total control of character type definitions, edit screen masks, input sequence, variable 
names, initial values, protected characters, etc. 

COMPLETE DATA ENTRV ROUTINES 

Generates customized program code that allows professional quality data input using the full PC keyboard (cursor keys, delete, 
insert, and more). Checks input data for valid entries and displays error messages. 

Programs are easily merged with your own programs. 

Easy to follow documentation shows how and where you can modify the generated programs. 

•Available now with IBM PC, PCjr, PCXT, and all true compatibles. 

• Requires 128k RAM, one floppy disk drive, and PC DOS. Works with any display type. 

• Turbo PASCAL is a registered trademark of Boreland International, Ltd. IBM is a registered trademark of IBM corporation. 


Master Card and Visa orders call now toll free 1-800-824-7888. Operator 268 
Alaska and Hawaii call 1-800-824-7919. Operator 268 
DEALER INQUIRIES INVITED. SORRY, NO C.O.D. 

Produced and Distributed by The Software Bottling Co. of New York. 
29-14 23 Ave., New York City, N.Y. 11105 « (212) 728-2200 Telex 380748 




CIRCLE NO. 172 ON READER SERVICE CARD 



























Strings 


Listing 8 SWITCH 
FUNCTION: This routine switches two strings. 
INPUT: Upon entry DS;SI points to one string (the 
source) and ES:DI points to a second string (the des¬ 
tination). Both strings have lengths given by CX. 
OUTPUT: Upon exit the strings are switched. 
REGISTERS USED: No registers are modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment contains the source string and the ex¬ 
tra segment contains the destination string. 


ROUTINES CALLED: None 
SPECIAL NOTES: None 
CODE: 


; ROUTINE 

TO SWITCH TWO 

STRINGS 

switch 

proc far 


push 

si 

; save registers 

push 

di 


push 

CX 


push 

ax 


cld 


; forword direction 

switchl: 



mov 

a1,[di] 

; get byte from destination 

movsb 


; move from source to destination 

mov 

es;[si-l],al 

; put byte in source 

loop 

switchl 

; loop back for more 

pop 

ax 

; restore registers 

pop 

CX 



pop di 
pop si 
ret 

switch endp 


Listing 9 BSORT 

FUNCTION: This routine sorts a string array by 
using bubble sort. 

INPUT: Upon entry DS:SI points to a string array, 
CX contains the number of entries in the array, and 
DX contains the size of each entry. 

OUTPUT: Upon exit the array is sorted. 
REGISTERS USED: No registers are modified. 
SEGMENTS REFERENCED: Upon entry the 
data segment and the extra segment must be equal 
and must contain the string array. 

ROUTINES CALLED: COMPARE, SWITCH 

SPECIAL NOTES: None 

CODE: 


; ROUTINE 

TO SORT A STRING ARRAY 

bsort 

proc far 

push 

si ; save registers 

push 

di 

push 

CX 

push 

ax 



BASICTc^ 

2Itn)GlI«5 T££ B£SIC GAP— 

Every day, programmers like yourself arc 
making the jump from BASIC to C. With 
high level functions that work like BASIC 
and documentation that is written from the 
perspective of a BASIC programmer, the 
BASIC-C library provides the best path to help 
make your journey pleasant and fast! 

BASIC’S POWERFUL FUNCTIONS 
IN C PROGRAMS— 

The BASIC-C library provides most of BASIC’s high 
level functions—string handling, sequential and 
random i/o, graphics and many more—all are 
designed to look and work like BASIC functions. 

Instead of wasting time trying to figure out how to 
clear a screen or locate the cursor, you can concentrate 
on learning what C is about. Source code for the whole 
library is included! 

WRITTEN WITH BASIC PROGRAMMERS 
INMINU— 

Our documentation is oriented to those familiar with BASIC. A full chapter 
is devoted to a point-by-point comparison of BASIC and C. Each function’s 
description contains at least one example written in BASIC and the 
equivalent C. Many customers tell us that the BASIC_C documentation is 
the best C tutorial they’ve seen. 


EC DEMO DISK -.$ 5 

EC (pronounced e-see) - full screen editor.$125 

BASIC-C LIBRARY - including source code.$175 

BASIC-C & EC.$275 

BASIC-C & DeSmet C compiler/w debugger.$325 

BASIC-C & Computer Innovations C compiler.$475 

BASIC-C & Lattice C compiler.$525 

BASIC-C & EC & DeSmet C compiler/w debugger . $425 
BASIC-C & EC & Computer Innovations C 

compiler.$575 

BASIC-C & EC & Lattice C compiler.$625 


£C EDITOR-^ 

MAKE ANY rC-J>Oi CALL FROM 
INH0EEC— 

Now you can edit, compile and test your program 
from inside the EC editor. In fact, EC gives you 
complete access to the operating system. Do a 
directory, copy or delete files, even run other 
programs without ever leaving EC! 

MULTIPLE WINDOWS ... WITH A HLE 
IN EACH— 

AH windows can be shown on the screen at 
the same time; or the screen can be 
dedicated to one file, while the others are 
kept in the background—only a 
keystroke away. You can even cut and 
paste blocks of text between windows! 

FULL SCREEN EDITOR FOR THE IBM— 

EC uses all the PC’s special keys so that editing is fast and 
intuitive. In addition to standard editing features, EC provides text 
and command macros, word wrap, paragraph reformatting, horizontal 

scrolling, and color video control. 

DEMO DISK IS ONLY $5— 

Call or write for our fuU-featured demo. You’ll get a standard version of EC 
that can handle up to lOK worth of text files and a complete set of 
documentation. See for yourself how pleasant it is to use an editor that 
gives you multiple windows and free access to your operating system. 

*BASIC-C and EC run on an IBM PC, or look-alike, with at least 128K RAM under 
DOS 1.1 or higher. To use the EC EDITOR’S DOS interface feature you must have 
DOS 2.0 or higher and enough RAM to run the additional program. 

IBM is a trademark of International Business Machines. 

MO. Residents Add 6% Sales Tax. 

C SOURCE 
12801 Frost Road 
Kcinsas City, MO 64138 

816-353-8808 


^URCE 


124 


CIRCLE NO. 116 ON READER SERVICE CARD 


PC Tech Journal 


























mntaio^ 


CUT THROUGH 
THE TALL GRASS 
WITH MOUNTAIN'S 
HLESAFE ■ COMBO 
DISK/TAPE PACK 
FOR THE IBM* 

PC/XT." 

Our new FileSafe Combo pack 
lets you mix and match hard disk 
(10,15, 20 or 35MB) and tape 
backup (27 or BOMB) in one 
low-cost, high-performance 
unit that mows down the 
competition. 


FEATURES 

TALLGRASS^ 

TG-313S 

BACKUP SPEED (2DMB) 

25 MINUTES 

INSTALLATION; 

SPEED 

EXPERTISE 

2 HOURS 

REQUIRES TECHNICIAN 

IBM COMPATIBILITY 

REQUIRES SOFTWARE 
MODIFICATIONS 

TRANSFERABILITY OF 
BACKUP FILES 

SEVERELY LIMITED 

ERROR CORRECTION (ECC) 

NDNE 

RELIABILITY 

ASK THEIR CUSTOMERS 

NETWORKING 

COMPATIBILITY 

LIMITED 

WARRANTY 

3 MDNTHS 

PRICE 

S5.745 


MOUNTAIN 

MT-4000-04 


6 MINUTES 

10 MINUTES 
ANYONE 

100% PLUG IN AND RUN 

UNLIMITED 

COMPLETE 

ASK OUR CUSTOMERS 

3COM. NOVELL, NESTAR 
& PCnet" 

6 MONTHS 

$5,595 


■^Tallgrass TG-3135 with 
’^Mountain MT-4000-04 


35MB hard disk and tape backup 
with 35MB hard disk and tape backup 


parison shows it offers greater IBM and 
networking compatibility. It's faster, more reli¬ 
able, and easier to install. It comes with a 
longer warranty. And all at a better price! 

So now you have a choice. You can plow 
your way through the tall grass. Or you can 
reach for a Mountain FileSafe Combo disk/ 
tape pack at ComputerLand and other lead¬ 
ing computer stores. 

For more information, write: Mountain, Inc., 
300 El Pueblo Road, Scotts Valley, CA 95066. 
Or call nc — I (408) 438-6650. 

TWX 910-598-4504. 


Mountain is a registered trademark and FileSafe is a trademark of Mountain, Inc. 
IBM and are trgijlemarks of International Business Machines Corporation. 

' ' id tmdtemarkx^0rchid T^hnof 


CIRCLE NO. 162 ON READER SERVICE CARD 

Mountain 

THE PEAK OF PERFORMANCE 

1-800-458-0300 (in California, 1-800-821-6066) 

In Canada, call Parity Plus Inc. (416) 673-3321. 

1495 Bonhill Road, # 12, Mississauga, Ontario, Canada L5T 1M2 






















M^TSOFTPRODUCTSINC 

A subsidiary of the University of Waterloo 

Announces 

Strings 

; adjust count for one less than number of items I 

dec cx ; adjust the count 

Waterloo 

; outer loop - for SI = 1 TO N-1 

bsortl: 

NetWorkStation 

Tools 

push cx ; save the count ' 

mov di,si ; destination points to source 

; inner loop ^orDT = P+t |o If . 

bsort2; 

push cx ; save the count 

for the IBM Personal Computer 

Editor 

• full-screen 

• colour support 

• function keys 

Host Communications 

• VM/370 CMS, RSTS/E, VAX/VMS 

• file transfer micro to/from host 

• access host files from micro programs 

Terminai Emuiation 

acfcf dfVdx ; point to next destination ~ 

mov cx,dx ; entry length 

call compare ; compare the strings 

Jl'e bsortS ; skip if source <= list '' i 

call switch ; switch if not : 

bsortS: 

pop cx ; restore the count 

loop bsortZ 

s’|»^x ; pdfhl. HI nexl'source 

pop cx ; restore the count I 

loop bsortl 

bsortexit: 

pop ax ; restore registers 

pop cx 

"IPSP 8^ ' . .... " “ ■ ■' ~ ' 1 

pop si ; 

ret 

bsort endp 

For further information contact: 

WATSOFT Products Inc. (519) 886-3700 

158 University Ave. W., Telex No.; 06-955458 

Waterloo, Ontario 

N2L 3E9 

CIRCLE NO. 218 ON READER SERVICE CARD 





SPF/PC" 

ACTUALLY, there is no comparison. SPF/PC is 
the best fuil-screen editor available for the iBM 
Personal Computer. 

It looks and works like IBM’s large system SPF 
editor. 

•SPF/PC can use up to 786K of memory as workspace. 

•Word processing commands. 

•4-way scrolling. 

•Split screen support. 

•On-line help facility. 

•Can edit up to 240 character records. 

•Monochrome or color supported. 

•Instantaneous screen display. 

•Block Move/Copy/Repeat/Delete/Overlay/Shift/Exclude 
•Automatic line numbering supported. 

•40 user-definable Program Function Keys. 

• Direct interface to DOS'commands for PCDOS 2.0 users. 

•Browse sub-system. 

• Move/Copy sub-system copies any file format. 

•Utilities include: Rename/Delete/Print/Directory list. 

AND MUCH MORE . . . 

UPLOAD/DOWN LOAD sub-system available to SPF/PC users for 
$50.00. 

THE ODD-COUPLE™ 

Allows the APPLE and IBM/PC to 
communicate with each other. 

•Connect APPLE to PC, APPLE to APPLE, and PC 
to PC. 

•Transfer any file in either direction. 

•CHAT mode allows direct communications 
through the keyboard. 

•An Equipment Profile allows description of 
your operating environment. 

•Communicate Direct or through a Modem at 
speeds up to 9600 baud (bps). 

•Written entirely in machine language for speed 
and efficiency. 

REQUIREMENTS: 

APPLE — 48K, 1 disk drive. Serial Interface 

IBM — 64K, 1 disk drive, Serial Interface 

^ Q Q fT SPF/PC requires 128K, PCDOS, 

1 T y 3 and 1 disk drive. 

V9.95 

For orders and deaier information write or cail Rogue River Software, 2822 Tahitian Ave., Medford, OR 97504, 

(503) 779-3002. Mastercard/Visa, Check, or P.O. accepted. Add $5.00 for shipping. Canada $10.00. Foreign $15.00. 

IBM is a registered trademark of International Business Machines, Inc. APPLE is a registered trademark ot Apple Computer Inc. 


_ CIRCLE NO. 207 ON READER SERVICE CARD ^ 

PC Tech Journal 

116 















































PELADE 
lEXl EIIGinEE^ 

The first full featured word processor for the IBM personal computer capable of 
producing all mathematical, scientific and engineering symbols* including superscripts 
and subscripts for complete equation editing on screen. 

Multi-lingual capabilities include the specific characters, accents and letters found in 
French, Spanish, German, Italian and all other western European languages. 

Advanced Word Processing features include: 

• Command line driven editor 

• Comprehensive, easily accessible on-line help 

• All features, including bold, italics, underlining and special characters appear on 
screen exactly as they are printed. 

SPECIAL INTRODUCTORY PRICE $250 MAIL ORDER ONLY. OFFER EXPIRES JULY 31/84. 



PELADA inPO^niAEICA IIIC. 

87 Queen St., Kingston, Ontario, 

Canada K7K 1A5 
Tel. (613) 549-1747 

‘Requires Epson FX-80, FX-100 or similarly featured printer. 

FREE SAMPLE DISK AVAILABLE UPON REQUEST. 


CIRCLE NO. 141 ON READER SERVICE CARD 


































Simple as pie. 


GraffHopper is designed to 
reduce chart building to a 
simple process. The user 
simply looks through his 
ChartBook catalog of over 
100 formats, selects the 
chart he prefers and 
responds to a few simple 
screen prompts. 

GraffHopper formats range 
from straight lines to 
sophisticated report/curve 
combinations which can 
be completed in a matter of 
seconds. 


* LOTUS 1-2-3 is a copyright of 
Lotus, Inc.; MULTIPLAN is a 
copyright of Microsoft, Inc.; dBASE 
II is a copyright of Ashton-Tate. 



GraffHopper also offers 
the more traditional 
approach to chart 
building through the use 
of a simple menu 
structure (including 


on-line help) or command 
word method. Whatever 
the mode of chart 
creation, the objective of 
the software is the same: 
to produce complicated 
charts with as little user 
interaction as necessary. 

GraffHopper also includes 
a unique feature — 

Chart Connect. Using 


Chart Connect the user 
can access data already 
stored in LOTUS 1-2-3*, 
MULTIPLAN*, or dBASE 
II* files. With Chart 
Connect, spread sheet 
data may be retrieved 
through a series of simple 
user prompts and need 
not be rekeyed. 


For more information call 
or write: 



Data Business Vision, Inc. 

3510 Dunhill Street, Suite B 
San Diego, CA 92121 

619/450-1557 

800 / 321-6828 

CIRCLE NO. 138 ON READER SERVICE CARD 


©1984 Data Business Vision, Inc. 









IS SIMPLE 


This little-known, 
love-it-OT-leave-it 
language attacks 
the game of Life 
with ease. 


rogrammers who have used 
1 APL are rarely ambivalent 
r about it. This is a program¬ 
ming language to either love or 
hate. "Learn a proper language, 
not APL," say its detractors, while en¬ 
thusiastic APL users react quite differ¬ 
ently. "Keep doing things the hard 
way, or start using APL," they advise. 

I paid my money, took my 
chances, and rapidly became an APL 
enthusiast. APL is to other program¬ 
ming languages what poetry is to 
prose: concise, expressive, and versa¬ 
tile. It is easier to use than "proper" 
programming languages for two rea¬ 
sons: it has an interactive, extensible 
programming environment and simple, 
consistent data handling. 

BASIC programmers, when first 
exposed to APL, undoubtedly will no¬ 
tice several similarities in BASIC and 
APL. Both languages are interactive, 
have commands to store and retrieve 
programs from disk files, include built- 
in program editing facilities, and 


Pardner Wynn 


Pardner Wynn is a Ph.D. candidate in 
electrical engineering at Stanford University. 
He is a part-time microcomputer consultant 
and is cunently working on a major 
educational software program for the PC. 


September i984 


129 









APL 


Figure 1: Common APL Operations 


The following is a guide to a small subset of common APL operations. Short 
examples illustrate how these operations are used in the Life game program. 

Four test variables are used in the examples: 


V is 1 3 

5 7 (numeric vector) 


S is 5 

(numeric scalar) 


M is 1 2 

3 4 (2-D numeric matrix) 


5 6 

7 8 



9 10 

11 12 



C is A B 

C D (2-D character matrix) 


E F 

G H 



I I 

K L 



Name 

Description 

Format 

Example 

Assignment 

Assign value of 

y—X 

y-s 


X to y 


y^V 

Puts 5 in variable y 

Puts array 1 3 5 7 in y 

Addition 


X + y 

S + 1 is 6 

(scalar H- scalar=scalar) 

V -h S is 6 8 10 12 
(vector + scalar=vector) 

V + 1 2 3 4 is 




2 5 8 11 (vector-h vec¬ 
tor = vector) 

Subtraction 


X - y 


Multiplication 


X X y 


Division 


X ^ y 


Logical AND, OR 


X A y 

lAl is 1 (true) 



X V y 

lOVll is 11 (true true) 

Logical NOT 


---x 

-1 isO 
'^0 is 1 

Rotate 

Rotate y along last 

X 0 y 

10V is 3 5 7 1 


axis as specified 


-10V is 7 13 5 


by X 


20Mis 3 4 12 




7 8 5 6 

11 12 9 10 

Rotate 

Rotate y along first 

xOy 

lOMis 5 6 7 8 


axis as specified 


9 10 11 12 


by X 


12 3 4 

Format 

Convert y to 

®y 

®Vis 13 5 7 

Quad 

character(s) 


(7 characters: 4 
digits and 3 spaces) 

Output contents of 

□^x 

□<—V shows 13 5 7 

Roll 

X to display 


on display 

Give random integer 

?x 

?S gives random integer 


from 1—X 


from 1-5 

?V gives 4 random integers 




from (1-1) (1-3) (1-5) (1-7) 


have a host of math, character, 
program control, and program de¬ 
bugging functions. 

This apparent similarity is mis¬ 
leading, however. APL takes these 
common features far beyond the 
capabilities of BASIC. APL work¬ 
spaces simplify the management of 
programming projects. The language 
can be extended to meet appli¬ 
cations. It treats data consistently— 
the same operators deal with scalars 
and arrays, or with numbers and 
characters. Syntax is simple and un¬ 
ambiguous. Further, APL has an un¬ 
equaled assortment of built-in func¬ 
tions. (See figure 1.) 

APL Syntax 

APL syntax underscores the simplic¬ 
ity of the language. It requires the 
user to memorize no precedence 
rules. In APL, every expression is 
evaluated right to left, except where 
grouped by parentheses. Most lan¬ 
guages evaluate expressions from 
left to right and give some operators 
precedence over others. 

For example, in the expression 
4+3X2+1 = 11, multiplication 
takes precedence over addition in 
most languages. In APL the same 
expression is evaluated right to left 
as f(l+2)X3J+4=13. Multiplica¬ 
tion is not done first, unless paren¬ 
theses are used to alter the evalua¬ 
tion order, as in 4+f3X2) + l = ll. 

Why does APL exhibit this 
nonstandard lack of operator prece¬ 
dence? Because it's simpler. Memo¬ 
rizing the precedence of more than 
75 built-in operators is impractical. 
Since all operators in APL have the 
same precedence, only parentheses 
alter the right-to-left evaluation or¬ 
der, and any APL expression is sim¬ 
plified and unambiguous. 

APL AND Data 

No other language gives a program¬ 
mer control of data the way APL 
does. One reason is that any APL 
variable can hold any type of data— 
numeric or character, scalar or ar¬ 


ray—at any time. Figure 2 shows 
how to assign a value to an APL 
variable. A very similar BASIC ex¬ 
pression is also shown. In fact, add¬ 
ing two variables is done in much 
the same way in BASIC and APL. 
But the similarity ends when a list 
(or array) of data must be stored and 
used—APL is much simpler. 

APL handles arrays in the same 
way it handles single numbers 


(called scalars). To assign a list of 
numbers to an APL variable, the 
programmer simply has to do it—no 
loops, no fuss. In contrast (as shown 
in figure 2), BASIC must use a spe¬ 
cial dimensioned-array variable, and 
each data value has to be loaded sep¬ 
arately into its spot in the array. 

APL adds two arrays just as it adds 
two scalars. In fact, a function con¬ 
taining a line that does this may be 


130 


PC Tech Journal 













Figure 2: APL Versus BASIC 
Data Handling 


Assigning scalar data to 
variables: 

APL BASIC 

NUM 1 4- 4 NUM I = 4 

NUM 2 — 2 NUM 2 = 2 

Adding scalar variables: 

APL BASIC 

SUM - NUM 1 SUM = NUM 1 

+ NUM 2 + NUM 2 

Assigning array data to 
variables: 

APL BASIC 

LIST 1 — 0 24 LIST 1 [I] = 0 : 

LIST 2 — 4 5 6 LIST 2 [I] = 4 

LIST 1 [2] = 2 : 

LIST 2 [2] = 5 
LIST 1 [3] = 4 : 
LIST 2 [3] = 6 

Adding array variables: 

APL BASIC 

SUMLIST—LIST 1 + For I = 1 to 3 

LIST 2 SUMLIST [I] = 

LIST 1 [I] + 
LIST 2 [I] 

Next I 




Figure 3: APL Indexing 

Simple array indexing: 

12 3 4 

LIST 1 


LIST 1 [1 3 4] 1 


1 

2 

4 

8 

16 


3 

7 

1 

4 

8 


General array indexing: 

1 2 3 

DATA 


'A' 


'B' 


'C' 


1 


INDEX 


DATA [INDEX] 


'A' 

'C' 

'B' 

'A' 


used with array data one time and 
with scalar data another time. 

Individual elements of an array 
are accessed in APL just as in 


BASIC. In figure 3, LISTI [3] is the 
third element in a variable LISTI 
(which is 4 in the example). APL 
indexing is much more general, 
however. Almost any subset of an 
array can be specified by listing 
which elements are desired. For ex¬ 
ample, LISTI [ 1 3 4 ] is an array 
with three elements: the first, third, 
and fourth elements of LISTI. 

The second example in figure 3 
better illustrates APL indexing. 
DATA is a short string consisting of 
three characters, "ABC"; INDEX is 
a 2-by-2 matrix of numbers from I 
to 3. The expression DATA[IN- 
DEX] creates a 2-by-2 matrix of 
characters, with an "A" wherever 
INDEX is 1, "B" where INDEX is 2, 
and "C" where INDEX is 3. 

Because of its treatment of data, 
APL is popular with programmers 
who must deal with large volumes 
of data. Each time APL works with 
data, it determines the type of data 
and behaves appropriately. 

Extensible and 
Interactive 

APL's extensible and interactive na¬ 
ture is largely responsible for the 
popularity of the language. It is ex¬ 
tensible because the user's functions 
actually extend to meet his current 
needs. When a function is inside 
the active (memory) workspace, it is 
part of APL—there is no difference 
between primitive (built-in) and 
user-defined functions. 

Any APL function can be indi¬ 
vidually executed by typing its 
name and any required parameters. 
For example, in order to calculate 
23.4X567.8, type that expression in. 
APL will execute it immediately 
and display the answer, 591.2. Be¬ 
sides being handy for "calculator- 
style" computing, this interaction is 
helpful for developing functions. 

When APL is used to develop 
an algorithm, it can test small sec¬ 
tions interactively, using any special 
test data that are necessary. This al¬ 
lows programs to be created and ver¬ 


ified one step at a time. After using 
this approach a few times, a pro¬ 
grammer probably will not want to 
go back to the testing environment 
most languages dictate—that is, edit 
the whole thing, then cross your 
fingers and watch for smoke. 

To help the user with this mod¬ 
ular development, APL's debugging 
facilities can trace or single-step 
through the functions. This pro¬ 
vides a "window" into a function's 
operation while it executes. 

The APL Workspace 

APL is not merely a programming 
language. It is an interactive envi¬ 
ronment for program development. 
Figure 4 presents an analogy to the 
APL environment. A carpenter who 
builds shelves and tables uses the 
same workroom for both types of 
work. He has a separate closet for 
unfinished shelves and tables, and 
probably keeps his tools, nails, and 
finishing supplies in another closet. 

In APL a computer's memory is 
an active workspace that holds both 
the functions and the data being 
worked on. Different projects' work¬ 
spaces can be saved in disk files. 
Many APL programmers also keep 
"toolbox" workspaces on disks that 
hold utility functions to simplify 
program editing or testing. These 
disk-based workspaces cannot be 
worked on directly, but functions 
and data can be transferred freely 
between active (memory) and saved 
(disk file) workspaces. 

A programmer may have sev¬ 
eral ongoing APL projects, with a 
saved workspace for each. To switch 
to another project, he can save the 
current active workspace in a disk 
file, then copy another project's 
workspace from disk into a clean, 
active workspace. 

The Game of Life 

The best way to get a taste for what 
APL can do better than other lan¬ 
guages is to see it in action. My first 
APL solo flight was a program to 


September i984 


131 














































APL 



SYMD 

SYMBOLIC-DEBUGGER 



Faster, 
easier and 
more productive 

SYMD—the unique new 
programming aid for PC- 
DOS^^^andMS-DOS^^ 
systems—dramatically 
reduces the time and 
effort needed to identify 
and correct programming 
errors. SYMD simplifies 
debugging by utilizing 
source code symbols and 
line numbers wherever 


an address or offset is 
required. Symbob are 
easier to remember, more 
efficient to use. SYMD 
also lets you: Examine 
and/or change real 
number data; assign per¬ 
manent or temporary 
breakpoints, including 
pass counts to control 
looping; check instruaion 
execution sequences with 
backtrace commands; use 
profiling commands to 
identify the most active 


parts of a program. And 
much more. SYMD can 
be used with compiler 
or assembly language 
programs. System 
requirements: PC-DOS 
or MS-DOS 1.1 or 2.0; 
192K recommended; 
80-column dbplay. 

SYMD b introductory 
priced at only $90. Free 
literature on request. 
VISA or MasterCard 
accepted. 


tmmS-DOS is a trademark of Microsoft Corporation. tmpc-DOS is a trademark of the IBM Corporation. 

^)~i~\/systems 

400 Amherst Street Nashua, NH 03063 (603)881-7140 


CIRCLE NO. 131 ON READER SERVICE CARD 



CIRCLE NO. 159 ON READER SERVICE CARD 


L 


PC FORTH 

IBM PC & XT, 
HP-150, 
Macintosh, 
Apple II, 
CompuPro, 
Sage & CP/M-68K, 
Wang PC, 
All CP/M and 
MSDOS computers. 


WITH urn FORTH 


Try the professional ^ language offering 
the utmost performance in the shortest 
development time. Transport your ap¬ 
plications between any of our enhanced 
83-Standard compilers or expanded 
32-bit versions. Choose from our wide 
selection of programming tools including 
native code compilers, cross-compilers, 
math coprocessor support, and B-Tree 
file managers. All fully supported with 
hotline, updates, and newsletters. 


Laboratory Microsystems Incorporated 

Post Office Box 10430, Marina del Rey, CA 90295 
Phone credit card orders to (213) 306-7412 , 


play the game of Life. Devised by 
the Cambridge mathematician J.H. 
Conway, this game simulates a col¬ 
ony of simple organisms in a con¬ 
fined environment. The program is 
short—about 40 lines long—but 
demonstrates several important APL 
features: function declarations, ma¬ 
trix operations, temporary variables, 
random number generation, string 
manipulation, row reduction and 
expansion, and program branching. 

The game of Life is very easy. 
Only three rules control the growth 
of the colony: (1) an organism will 
die if it has fewer than two neigh¬ 
bors,- (2) an organism will die if it 
has more than three neighbors; and 
(3) an organism will be born into an 
empty spot if that location has ex¬ 
actly three neighboring organisms. 
The program computes what the 
next generation of the colony looks 
like by applying these rules to each 
location in the colony. 

Six functions comprise the Life 
game program: 

NEXTGEN uses the three rules 
above to compute the next gen¬ 
eration of organisms from the 
current generation. 

NUMNEIGHBORS is used by 
NEXTGEN to count the num¬ 
ber of organisms next to each 
spot in the colony. 

RANDOM distributes the first 
generation of organism ran¬ 
domly, with an initial density 
selected by the player. 

Each generation of organisms is 
printed out by the function 
SHOWCOLONY. 

INITBORDER creates a variable 
that is used to help print out 
the colony. 

LIFEGAME is the main function. 
It ties together the other five 
functions. 

Main Data Structures 

The primary data structure in Life 
is the game board, which is a square 
matrix. Only one organism can oc¬ 
cupy any one spot on the board. 


132 


PC Tech Journal 















AT LAST! TEN IBM PC/XT 
FUNCTIONS AVAILABLE 
THRU ONE SLOT! 



WTTHSuPHlSlIlUllirMODEM 

— ANDB12H 




•^SERS MANUAL 


MAGNUM HARDWARE AND SOFTWARE FEATURESi 


1 . SuperSmart MODEM - 212A type (300-1200) 
intelligent modem with Auto Answer/Auto Dial 
(touchtone/pulse). Mounts inside PC/XT where it 
belongs. 52 number Auto-Dialer optional. 

2. PARALLEL PRINTER PORT 

3. SERIAL PRINTER/COMM. PORT. 

4. GAME/MOUSE PORT 

5. QUARTZ CLOCK/CALENDAR 

6. MEMORY -64K to 512K bytes 

7. TurboRAM - Extra RAM used as hard disk. 

8. TurboSpool - Print job buffer/spooler. 

9. TurboComm - SuperSmart MODEM control 
program includes: Single key, built-in emulation of 


such popular terminals as DEC VT-100 (ANSI 
standard), Data General 605X series, ACT-5 A 
and ADM-5A. Supports all standard baud rates to 
19,200. Single keystroke connection to host. 
Screen transmission status reporting. Full printer 
and disc drive controls. Full buffering and interrupt 
driven I/O). Error detection and logging. Capabil¬ 
ity to interactively download and upload disk files. 

10. TurboFile - TurboComm’s file transfer utility 
featuring: Automatic unattended file transfer 
initiated any time, day or night. Transfers any file 
supported by PC/DOS. Automatic error 
detection and recovery. Password computer 
access protection. 


CHECK OUR STANDARD FEATURES 




MAGNUM MEMORY 


MINI-MAGNUM 


MAGNUM 10 


* OPTIONS 


Order now! Check, M.O. Visa and Mastercard accepted • Satisfaction guaranteed. 2 years warranty 

MULTI-FUNCTION AT IT’S BEST FROM 

AMERICAN HIGH-TECH INDUSTRIES, Inc. 

ELEVEN-ONE-ELEVEN WILCREST GREEN DRIVE 
SUITE 201, HOUSTON, TEXAS 
(713)952-7332 

CIRCLE NO. 104 ON READER SERVICE CARD 


MAGNUM MODEM 































Q PACK I; Building Blocks I Object 

250 Functions: DOS, $99 

Printer, Video, Asynch Source 

$149 

□ PACK 2: Database Object 

100 Functions: B-Trees, $149 

Variable Records Source 

$Call 

□ PACK 3: Communications Object 

135 Functions: Smart- $149 

modem'", Xon/Xoff, Source 

Modem-?, X-Modem $Call 

Q PACK 4: Building Blocks II Object 

100 Functions: Dates, $129 

Text Windows, Source 

Data Compression $Call 

□ PACK 5: Mathematics I Object 

35 Functions: Log, Trig, $99 

Square Root Source 

$Call 

□ PACK 6: Utilities I Object 

35 Functions: Archive, DIR $99 

Manipulation Source 

$Call 


NOTE: Above Packs for Lattice'" Compiler on 
IBM PC/XT'" 

To Follow: Graphics, Advanced Math, Other 
Compilers and Hardware 
Prices above for single user, multi user 
license available 

Credit cards accepted ($7.00 handling/Mass. 
add 5%) 




SOfTWflRf 

tiORizons 

inc. 


165 Bedford Street 
Burlington, Mass. 01803 
(617) 273-4711 


APL 


System Memory 



An APL Programmer's Workspace 



A Carpenter's Workspace 


Figure 4: The APL Environment 


Each spot has eight adjacent spots, 
so an organism may have up to 
eight neighbors. The simplest struc¬ 
ture is a matrix with a 1 in every lo¬ 
cation that has an organism, and a 0 
in each empty spot. 

The matrix variable, COLONY, 
is illustrated in figure 5 for a 5-by-5 
game board. In that example five 
organisms in COLONY are denoted 
by Is in the matrix. In APL, as in 


BASIC, the elements of an array are 
referred to by indexing. For in¬ 
stance, the five organisms in COLO¬ 
NY are located at the coordinates 
[2;3] (row 2, column 3), [3;3], [3;2], 
[4;2], and [4;4]. Thus, COLONY 
[4,4] is an APL expression referring 
to the organism near the lower right 
corner of the game board. 

Five more variables the same 
size as our game board COLONY 


CIRCLE NO. 175 ON READER SERVICE CARD 


PC Tech Journal 

































































EVERY PROG RAMMER/ANALYST NEEDS . . . 


zsHfear 


THE STRUCTURED PROGRAMMING TOOL! 



Design your programs right on the screen using modern techniques based on the popuiar Jackson 
Structured Programming method (JSP)! 

DEZiGN is more than just another fiowcharting tool It is an integrated tooi for designing and 
documenting programs and for generating source code in any of the languages listed above! 

DEZIGN enables a software developer to create Data and Program Structure Diagrams using the 
Sequence, Selection, and Iteration constructs; assign detailed statements to the Diagrams; and 
synthesize source code from the control logic represented on the Diagrams and the detailed 
statements assigned to them. 

DEZIGN lists for $200 and is available directly from Zeducomp, from IBM and Zenith personal 
computer dealers, and from software retailers. 

• DEZIGN-PC runs under DOS 2.0 and 2.1. 

• DEZIGN-86 runs under CP/M-86 1.1 and Concurrent CP/M-86. 

• DEZIGN-16 runs under ZDOS on Zenith Z-100 computers. 

“Principles of Program Design,” by M. Jackson, Academic Press, describes the JSP metholology 
and is available for$50 directly from Zeducomp and from most professional/technical bookstores. 



dBASE II is a trademark of Ashton-Tate, Inc. 
CIRCLE NO. 184 ON READER SERVICE CARD 















































APL 


Figure 5: Life Data Structures 


row 

1 

2 

3 

4 

5 


COLONY 


NEIGHBORS 


LONELY 


CROWDED 


(NEIGHBORS<2 A COLONY) (NEIGHBORS>3 A COLONY) 



1 

2 

3 

4 

5 

1 

0 

0 

0 

0 

0 

2 

0 

1 

1 

0 

0 

3 

0 

1 

0 

0 

0 

4 

0 

1 

0 

0 

0 

5 

0 

0 

0 

0 

0 


1 

column 

2 3 4 

5 


1 

2 

3 

4 

5 


1 

2 3 

4 5 

0 

0 0 

0 

0 

1 

0 

1 

1 

1 

0 

1 

0 

0 0 

0 0 

0 

0 1 

0 

0 

2 

1 

3 

2 

2 

0 

2 

0 

1 [F 

0 0 

0 

1 1 

0 

0 

3 

2 

3 

4 

2 

0 

3 

0 

1 0 

0 0 

0 

1 0 

1 

0 

4 

2 

2 

4 

1 

0 

4 

0 

I 0 0 


0 

0 0 

0 

0 

5 

1 

1 

0 

0 

0 

5 

0 

0 0 

0 0 


BORN 

(NEIGHBORS=3) 



1 

2 

3 

4 

5 


1 

2 3 

4 

5 


1 

2 

3 

4 5 

1 

0 

0 

0 

0 

0 

1 

0 

0 0 

0 

0 

1 

0 

0 

0 

0 0 

2 

0 

0 

0 

0 

0 

2 

0 

0 fo" 

0 

0 

2 

0 

0 

fo" 

0 0 

3 

0 

0 

0 

0 

0 

3 

0 

0 1 

0 

0 

3 

0 

T" 

1 

0 0 

4 

0 

0 

0 

1 

0 

4 

0 

0 0 

0 

0 

4 

0 

0 

0 

□ 

o 

5 

0 

0 

0 

0 

0 

5 

0 

0 0 

0 

0 

5 

0 

0 

0 

0 0 


DIED 

(LONELY V CROWDED) 


the next COLONY generation 

((BORN) V (COLONY A ~ DIED)) 


^lALLTREE 
H SYSTEMS 

* INTRODUCING 

JRAM-2 

THE ONLY 
TWO MEGABYTE 
MULTIFUNCTION 
BOARD 

Break through the 640K-byte memory 
barrier! Put two MEGABYTES of 
RAM plus all the most popular I/O 
functions—serial ports, parallel ports, 
and clock/calendar—in a single PC 
slot! Includes JETDRIVE RAM disk 
and JSPOOL printspooler. 


JRAM-2 OPTIONS 

JRAM-2 OK.$219 

JRAM-2 OK, Clock/Cal.$299 

JRAM-2 OK, Serial, Parallel 

ports, Clock/Cal.$399 

JRAM-2 OK, Two Serial ports .. .$349 

JRAM-2 OK, Two Serial ports, 
Clock/Cal.$399 

JRAM-C (For Columbia PC) 

OK, Clock/Cal.$249 


MEMORY 

64K chips $50/Bank 
256K chips $500/Bank 

DOS 2.0, 2.1 SOFTWARE 


JETDRIVE.$60 

WINDRIVE.$60 

JFORMAT-2.$60 

JSPOOL.$60 


TALL TREE SYSTEMS 

1032 ELWELL COURT, SUITE 124 
PALO ALTO, CA 94303 
(415) 964-1980 


are used. The variable NEIGHBORS 
(figure 5) keeps track of how many 
neighbors each spot on the board 
has. For example, the location 
COLONY[2;2] has three adjacent or¬ 
ganisms (marked by Is in locations 
[2,-3], [3;3], and [3;2]). Therefore, 
NEIGHBORS[2;2] equals 3. 

Each spot in COLONY with ex¬ 
actly three neighbors is marked by a 
1 in the variable BORN, as in figure 
5. This variable is used to enforce 
the rule that an organism can be 
born into an empty spot with three 
neighboring organisms. 

LONELY and CROWDED mark 
the location of each organism that 
will die because it has fewer than or 
more than three neighbors. DIED 
combines LONELY and CROWDED 
into one matrix. 

The NEXTGEN Function 

The heart of the Life program is the 
NEXTGEN function. This function 


computes what the next generation 
of COLONY will look like; it is an 
expression of the three rules of Life 
that were presented above. 

Each line in the NEXTGEN 
function implements a separate 
portion of the game rules. APL's 
simplified array handling lets each 
line do the work of a half-dozen 
statements in conventional lan¬ 
guages. As soon as a user is familiar 
with some basic APL symbols and 
syntax, a function such as NEXT¬ 
GEN is easy to read and write. 

The first line (0) of any APL 
function is a function declaration. It 
gives the name of the function, how 
the function is used, and what (if 
any) temporary variables are to be 
created for use by the function. 

In figure 6, line 0 of NEXT¬ 
GEN declares five temporary vari¬ 
ables that will exist only while 
NEXTGEN is executing. These 
temporary variables are declared by 


136 
























































Drowning 
a sea of 
sohilions 

Help's within 
reach... 


Applications backlog. Technology blur. Mounting user 
pressures. Staying abreast of changing prices. A tidal wave of 
problems! 

Even if some answers are available, you have to go to too 
many sources and sift through so much information, there’s not 
enough time to locate the solutions to your immediate and most 
important problems. 

Well, help IS within easy reach—in the form of an informa¬ 
tion system that displays all your current software, hardware and 
communications options for instant reference. 

That system is DATA SOURCES, and you’re invited to make 
it work for you. Simply fill in the coupon and we’ll send you DATA 
SOURCES’ 4 quarterly editions at 33% off their regular price. 

What DATA SOURCES does is organize your options. It 
guarantees that you’ve considered all relevant products by guid¬ 
ing you to those with the best possibility of success. 

DATA SOURCES is a conveniently sized, extremely well- 
organized and skillfully indexed 2-volume reference...maintained 
on a data-base, constantly updated and published quarterly 

YOU GET... 

HARDWARE—Over 16,000 products from Micros to Mainframes 
including peripherals—terminals, printers, memory devices, etc. 
...organized by systems compatibility 

SOFTWARE—The largest available inventory of 18,000 business 
packages for micros, minis, and mainframes including operating 
systems, utilities, and application packages. 



COMMUNICATIONS EQUIPMENT—From modems and multi¬ 
plexors to local networks, carriers and services, plus all diagnos¬ 
tic and test equipment. 

SERVICES, SUPPLIER, SUPPORT—Most complete organized list¬ 
ing of suppliers from installation design to maintenance and data 
center operations—over 8,000 companies. 


NEW FEATURES... 

1 /^ Software Index—by package name. 

Quick-reference piqued comparison charts. 
Before-you-buy selection criteria and cdieckiist. 
ProductHotline—the very latest information on 
products announc:ed between issues of 
Data Sourcres. 


\ ORDER NOW AND SAVE $60 

I VXci I two-volume edition of DATA SOURCES 

I I0o! and enter my subscription at $120.00 for 4 quarterly edi¬ 
tions. I save a full 33% off the regular price of $180. 


Name_ 

Title_ 

Company. 


Address^___ 

City_State_Zip- 

Telephone- 

Nature of Company’s Business^--- 

Please check appropriate box: □ END USER □ VAR/OEM 
□ DISTRIBUTOR □ DP MFC □ OTHER_ 


An information product of Ziff-Davis Publishing Company Satisfaction 

guaranteed | QAA OOH 1 Al 7 

SAVE TIME...CALL DIRECT 1 "lUl 1 


Return coupon to: 

DmnsouRCis 


EXT. 251 

(InCa., 1-800-772-3545 Ext. 251) 

T316 


PO. Box 5845, Cherry Hill, N.J. 08034. 


Residents of Ca.. Co., Ct.. D.Q. FI, U., Ma.. Mi., Mo., N.J., N.Y, Vt., please add applicable state taxes. 


CIRCLE NO. 202 ON READER SERVICE CARD 



















EDITOR 

Programmers 

& 

DP Professionals 

Edit Tool 

! ' —■ - 1 

List $225, demo disk $10 


micro flexibility . . . 
Multi-Window/File 

full screen editing;, ufi to 20 files 

Move/Copy/Delete 

one or inon* marked blocks 

Directory w /Free Space 

also read, urite, rename, erase files 

Build New Commands 

with key macros 

Power Down Recovery 

and i)f)tional auttt'haekup 

Restore Deleted Text 

fylus view scratch buffers 


Interactive and Batch Processing 
Exparided Data Management 
Subsystem with New Data 
Transforms 

Reading data files created by other 
programs 

3 types of Analysis of Variance 
Time Series 

Crosstabs and Chi-Square 
Factorials. Permutations, and 
Combinations 
Hypothesis Tests 


mainframe power . . . 

Search and Replace 

u'ith repeat and leildeards 

Large Files 

edit iii’n / 

Fixed Length Records 

as lonfi as 00,000 bytes 

Hex /EBCDIC Editing 

-gRCLE NO. 166 ON READRR S F.RVICE CARD 

AmeriSoft ™ 

(707) 778-8594 • (707) 762-0640 
345 S. McDowell Blvd., Ste. 410 
Petaluma, CA 94952 


Data sets that can exceed memory 
Multiple Regression (including 
Stepwise) 

Scatterplots (including best fit 
regression) 

Correlation Anaiysis 
12 Nonparametric tests 
8 Probability Distributions 
Descriptive Statistics 
Easy Installation 


APL 


listing the desired variable names 
on line 0, preceding each one with a 
semicolon. These variables hold sev¬ 
eral intermediate results. 

Compare the NEXTGEN func¬ 
tion declaration (line 0) in figure 6 
to line 8 of the LIFEGAME function 
in figure 12, where NEXTGEN is 
actually used. The two lines are 
similar in form (ignoring the five 
declared temporary variables). The 
function declaration provides a tem¬ 
plate for how the function is used. 

In line 8 of LIFEGAME, 
NEXTGEN is executed with one in¬ 
put parameter, the COLONY game 
board. It also has an output (the up¬ 
dated game board) that is assigned to 
another variable (in this example 
COLONY is used again, but any 
variable could have been used to 
''catch" NEXTGEN's output data). 

The NEXTGEN function decla¬ 
ration supports this by providing a 
temporary input variable (called 
COLONYIN) and a temporary out¬ 
put variable (called COLONYOUT). 
Whenever NEXTGEN is used, in¬ 
put data (COLONY, in the example) 
are copied into NEXTGEN's tempo¬ 
rary input variable. When the func¬ 
tion ends, whatever is in the tempo¬ 
rary output variable is automatically 
assigned to the indicated variable 
(COLONY in line 8 of LIFEGAME). 

NEXTGEN does not care what 
the name of the original input data 
is, or where the data came from. 
NEXTGEN can thus be used in sev¬ 
eral places with different variables. 

An APL function declaration, 
then, completely describes how a 
function is used. NEXTGEN re¬ 
quires one input parameter, and 
returns an output value. It also re¬ 
serves five temporary variables to 
accumulate intermediate results. 

The remainder of the function 
definition describes how it works. 
Line 1 of NEXTGEN uses the 
NUMNEIGHBORS function to 
count the number of neighboring 
organisms for each spot in 
I COLONYIN (which is a copy of the 


Microstats algorithins hav© boon d 0 sign©d to prevGnt numBric ovsiflow ©rrors 
and yie d unsurpassed accuracy. Microstat's price is $375.00 including the user's 
manual and is available for the Z80. 8086, 8088 CPU's and CP/M80 CP/M86 
MS-DOS. and PC-DOS. To order, call or write. 





6413 N. College Ave. • Indianapolis, IN 46220 
(317) 255-6476 


Trademarks: Microstat (Ecosoft), CP/M (Digital Research), MS-DOS TMicrosoft 
PC-DOS (iBM), Z80 (Zilog), 8086, 8088 (Intll). ^ ^MicrosoTT;. 


CIRCLE NO. 109 ON READER SERVICE CARD 




New Release 
4.1 



We've continually improved Microstat since it was introduced in 
1978, and the latest release includes nnany new features you've 
wanted. 


138 


PC Tech Journal 
















































Professional BASIC ™ cuts your 
program debusing time in half. 

Or your money back. 






mm ntroducing Professional 
U BASIC A powerful new 
BASIC programming language that 
can help you debug, or learn—and 
then master—the language. Profes¬ 
sional BASIC can actually double 
your programming efficiency. Or 
your money back. * 

What You See Is What You Get. 

Because Professional BASIC has a 
sophisticated window-oriented 
system environment—containing 
more than a dozen visualization 
and debugging screens—you see 
clearly and precisely the execution 
of your program. Line by line pro¬ 


gram execution unfolds via a dy¬ 
namic program trace... showing 
changes in variables or array ele¬ 
ments ... or the progress of FOR/ 
NEXT loops or GOSUBS. Using Pro¬ 
fessional BASIC, even beginning 
programmers will be able to pro¬ 
duce code quicker, with far less 
frustration. 

Now, Access All The Memory Of 
Your PC. 

Professional BASIC can use all of 
the mem¬ 
ory avail¬ 
able in 
your IBM 

64 
256 
640 


Personal Com¬ 
puter. (If expan¬ 
sion boards are 
used, that means 
upto640K.)Now 
you can create and 
run programs almost as big as your 
imagination—and talent. 


BASIC was de¬ 
signed to use the ultra¬ 
fast 8087 math coprocessor. 

The 8087 allows floating-point 
math operations to be performed 
with lightning speed. Professional 
BASIC enables you to fully utilize 
the 8087—to dramatically acceler¬ 
ate execution of programs involving 
complex floating-point computa¬ 
tions. (8087 coprocessor optional.) 

Read What The Experts Say. 

“This version of BASIC sets new 


standards for 
usability and ‘user 
friendliness’.” “Morgan’s 
product supports, in an unprec¬ 
edented way, the visualization of 
program execution.” 

April 1984 
Byte Magazine 


“The real magic of Profes¬ 
sional BASIC is its wealth 
of‘windows’ into an ex¬ 
ecuting program.” “I’m 
frankly amazed. My hat 
is off to Dr. Bennett... 

An elegant piece of cod¬ 
ing indeed.” 

February 1984 
Personal ComputerAge 

“This version of the 
language sets new stan¬ 
dards ...” “The user interface... 
is unbeatable for program develop¬ 
ment. ” “... You owe it to yourself to 
pick up the phone and order a copy 
of Professional Basic. ” 

June 1984 
Dr. Dobb's Journal 


The 8087 Connection. Accurate, 
High-Speed Math. 


Makes Learning The BASICs 
A Snap. 



Learn more about the BASIC lan¬ 
guage ... in significantly less time. 
With Professional BASIC there are 
over 18 different ways to view your 
program as it operates, step by step. 
On a split screen display you 
see, on one side, a dynamic 
display of 
executing 
program’s 
code... on 
the 
other 
side you 
actually see 
changes in variables 
as they occur. 


PROFESSIONAL BASIC 
SPECIFICATIONS 

IBM PC or XT™, Compaq™, or 
100% compatibles. 

DOS 2.x operating system. 

1 Double-sided disk drive. 
256K RAM minimum (384K 
recommended) 

8087 Chip optional 


Ask your local dealer for a 
demonstration, or call or write 
Morqan Computing Co., Inc. at 
1040D N. Central Expressway, 
Suite 210, Dallas, Texas 75231 
(214/739-5895). Suggested re¬ 
tail is $345.00. (Dealer inquiries 
welcome.) Demo disk is $5.00 
(includes demo on TRACE86™ 
andTED “). 


•Sole remedy for failure of product to double your 
debugging speed is return of full purchase price. To 
obtain a refund you must act within thirty (30) 
days of purchase (i.e.. return both product and 
original sales receipt) amd have completed and filed 
all warranty registrations with MCC. Further, you 
must reaffirm you have not copied the product 
or violated any copyright of MCC. Contact 
MCC for additional information. Offer expires 
November 1. 1984. 



Morgan Computing Co., Inc. 

Software Designed 
By Professionals. 

For Professionals. 


CIRCLE NO. 135 ON READER SERVICE CARD 


















APL 


Figure 6: NEXTGEN 


i: 

0 3 

COLONYOUT 

*• 

NEXTGEN COLONYIN ;NEIGHBORS 
;B0RN ;LONELY ;CROWDED ;DIED 

i: 

13 

NEIGHBORS 

*• 

NUMNEIGHBORS COLONYIN 

c 

23 

BORN 

*■ 

NEIGHBORS = 3 

c 

33 

LONELY 

«- 

COLONYIN •• NEIGHBORS < 2 

L 

43 

CROWDED 

€- 

COLONYIN • NEIGHBORS > 3 

c 

5 3 

DIED 


LONELY V CROWDED 

L 

63 

COLONYOUT 

<- 

BORN V COLONYIN - '"DIED 


Figure 8: RANDOM 



: 03 RANDOM 

: 13 COLONY (? (SIZE, SIZE) F 100) I DENSITY 



Figure 7: NUMNEIGHBORS Figure 9: SHOWCOLONY 


C 

0 3 

TEMPOUT 

«■ 

NUMNEIGHBORS TEMPIN 

C 

1 3 

TEMPOUT 

«- 

1 5 1 e 

TEMPIN 


C 

23 

TEMPOUT 

«- 

TEMPOUT 

+ 

1 e 

TEMPIN 

C 

3 3 

TEMPOUT 

€- 

TEMPOUT 

4 - 

-1 5 

1 e TEMPIN 

C 

43 

TEMPOUT 


TEMPOUT 

+ 

-1 5 

TEMPIN 

C 

53 

TEMPOUT 

«- 

TEMPOUT 

+ 

“1 5 

-1 e TEMPIN 

C 

63 

TEMPOUT 


TEMPOUT 

+ 

-1 e 

TEMPIN 

C 

73 

TEMPOUT 

<r 

TEMPOUT 

+ 

1 I- 

-1 e TEMPIN 

C 

83 

TEMPOUT 

<- 

TEMPOUT 

+ 

1 5 

TEMPIN 


C 03 SHOWCOLONY ; CHARINDEX ; CHAROUT 
C 13 CHARINDEX ^ BORDERMASK + COLONY + 1 
C 23 CHAROUT €- 'X 0' C CHARINDEX 3 
C 33 ((SIZE X 2) F 0 1) \ CHAROUT 

C 43 □ 'GENERATION NUMBER; tGENERATION 

i: 53 □ 'CURRENT POPULATION: ', tPOPULATION 

C 63 □ <■ ' ' 

C 730^'' 


COLONY game board) and puts the 
resulting matrix in the temporary 
variable NEIGHBORS. In figure 5, 
COLONY[2;2] has three neighbor¬ 
ing organisms, so NEIGHBORS [2;2] 
is equal to 3. 

Line 2 of NEXTGEN puts a 1 
in each location of BORN corre¬ 
sponding to a COLONYIN spot 
with exactly three neighboring or¬ 
ganisms. BORN can thus be used to 
enforce the Life game rule that an 
organism will be born into an 
empty spot if that location has ex¬ 
actly three neighboring organisms. 

The APL expression NEIGH¬ 
BORS =3 produces a matrix the 
same size as NEIGHBORS. Where 
NEIGHBORS equals 3, the expres¬ 
sion is true, and a 1 is put in that 
location in the matrix. Where 
NEIGHBORS does not equal 3, the 
expression is false, so a 0 is put in 
the matrix. This matrix is stored in 
the BORN variable (see figure 5). 

Notice that the expression in 
line 2 performed a logical operation 
on every location of an arbitrarily 
sized matrix. This economy of ex¬ 
pression is unique to APL. 

The Life rule that an organism 
will die if it has fewer than two 
neighbors is enforced in a similar 
way by line 3 of NEXTGEN. As 


illustrated in figure 5, the variable 
LONELY marks the location of each 
organism that will die. The expres¬ 
sion NEIGHBORS <2 does most of 
the work by marking each location 
in COLONYIN that has fewer than 
two neighboring organisms. 


T he NEXTGEN 
function demon¬ 

strates how easily 
(and automatically) APL 
handles matrix data. The 

user never has to be con¬ 
cerned with the size or 
shape of a matrix. 

When NEIGHB0RS<2 is 
ANDed with COLONYIN, only 
those board locations with fewer 
than two neighbors and with an or¬ 
ganism present are marked. This 
works because of the data structure 
that is chosen for the game board 
COLONY: locations with an organ¬ 
ism present have a 1, empty spots 
hold a 0. A logical AND puts a 1 in 
LONELY where both COLONYIN 
and NEIGHB0RS<2 are 1. 

The rule that an organism will 
die if it has more than three neigh¬ 


bors is enforced in line 4 using the 
same method as was used in line 
3—the CROWDED variable marks 
locations that have an organism and 
more than three neighbors. 

Line 5 of the NEXTGEN func¬ 
tion marks each organism in 
COLONYIN that will expire. That 
is, a logical OR operation allows the 
variable DIED to mark each loca¬ 
tion where an organism is either 
LONELY or CROWDED. 

The last line of the NEXTGEN 
function updates COLONYOUT to 
the next generation of organisms. 
The next COLONY generation is 
depicted in figure 5. 

The NEXTGEN function 
demonstrates how easily (and auto¬ 
matically) APL handles matrix data. 
The user never has to be concerned 
with the size or shape of a particu¬ 
lar matrix. To find exactly which 
locations in a matrix are greater 
than two, a simple expression like 
MATRIX>2 is sufficient. 

The NUMNEIGHBORS 
Function 

NUMNEIGHBORS uses two simple 
but powerful matrix rotate opera¬ 
tions to perform some elementary 
''signal processing" on the game 
board. The NEXTGEN function 


140 


PC Tech Journal 


































^ 2 ^ 

f»i\ The Most Advanced, Affordable Way to 
Trarisforinfour Personal Computers into a fully 


DISKLESS 
CAPABILITY 
• With remote 
boot option, 
PC without 
diskette drive 
automatically 
downloads 
DOS from disk 
server at 
power up 


PRINTER SHARING 
• Non<dedicated printer 
server on any PC 


EACH DISK/FILE 

SERVER 

• Up to 16 public and 
private volumes 

• More than one 
private/public read 
write volume for 
each PC 


RAM DISK 
• Provides faster 
access than hard disk 
and diskette drive 


DISK CACHING 
• Improved speed in 
accessing data normally 
on the disk drive 


Hard Disk 


PCnet is the lowest cost network for 
IBM™ PCs. Take your choice. 

$495 per node when purchased as a 
stand-alone. 

$395 per node when purchased with 
BLOSSOM (384K RAM, Clock, lO) 
Orchid, the creator of PCnet, has made 
high-performance local area networking 
affordable to all PC users. Contact your 
local dealer or Orchid today to unlock the 


power of your IBM PC and find out more 
about our full line of products. 

PCnet—Stand-alone Network Board 
PCnetPlusRam—PCnet + 256K RAM 
PCnetBlossom—PCnet + 384KRAM + 
Serial Port + Parallel Port + Clock Calendar 
Blossom—New Generation Multifunction 
Board 

PCturbo-The Ultimate IBM PC 
productivity enhancement board 


IBM PC is a registered trademark of International Business Machine Corporation. 

PCnet, PCnetPlusRam, PCnetBlossom, Blossom and PCturbo are all trademarks of Orchid Technology. 



CIRCLE 


ORCHD 


ORCHID TECHNOLOGY 
47790 Westinghouse Drive 
Fremont, CA 94539 
(415) 490-8586 Telex: 709289 






APL 


Figure 10: Printing COLONY 



1 

2 

3 

4 

5 


1 

2 

3 

4 

5 


1 2 

3 

4 5 

1 

0 

0 

0 

0 

0 

1 

0 

0 

0 

0 

0 

1 

1 1 

1 

1 1 

2 

0 

0 

I 

0 

0 

2 

0 

1 

1 

1 

0 

2 

1 2 

3 

2 1 

3 

0 

1 

1 

0 

0 

3 

0 

1 

1 

1 

0 

3 

I 3 

3 

2 1 

4 

0 

1 

0 

1 

0 

4 

0 

1 

1 

1 

0 

4 

1 3 

2 

3 1 

5 

0 

0 

0 

0 

0 

5 

0 

0 

0 

0 

0 

5 

1 1 

1 

1 1 


COLONY BORDERMASK CHARINDEX 


(COLONY + BORDERMASK + 1) 


1 2 3 4 5 


XXX 

X 0 

X 0 0 

X X 

X 

X 

X 0 

XXX 

0 X 

X X 


CHAROUT 

'X 0' [CHARINDEX] 


Figure: 11: INITBORDER 


C O: INITBORDER 

C ID BORDERMASK (SIZE,SIZE) F 1 
C 2D BORDERMASK C 1,SIZE ; D <- 0 
C 3D BORDERMASK C ; 1,SIZE D <- 0 


Figure 12: LIFEGAME 


C 

OD 

LIFEGAME 

C 

1 D 

INITBORDER 

c 

2D 

RANDOM 

c 

3D 

COLONY «■ COLONY BORDERMASK 

i; 

4D 

POPULATION €- +/ ,COLONY 

c 

5D 

GENERATION <- 1 

c 

6D 

LOOP; -JEND X i-POPULATION = 0 

c 

7D 

SHOWCOLONY 

c 

8D 

COLONY «• NEXTGEN COLONY 

c 

9D 

GENERATION GENERATION + 1 

c 

lOD 

COLONY €■ COLONY BORDERMASK 

c 

IID 

POPULATION <- +/ ,COLONY 

c 

12D 

-*LOOP 

i; 

13D 

END: □ 'ALL ORGANISMS EXTINCT! 

c 

14D 

□ *■ 'Goodbye. ' 


uses NUMNEIGHBORS to compute 
the number of organisms adjacent to 
each location in COLON YIN. As 
figure 7 shows, line 0 in NUM¬ 
NEIGHBORS copies the game board 
in COLONYIN into a temporary in¬ 
put variable called TEMPIN; it re¬ 
turns an output value (to NEIGH¬ 
BORS) via the TEMPOUT (tempo¬ 
rary output) variable. No other tem¬ 
porary variables are used. 

One way to write NUM¬ 
NEIGHBORS is to examine each 
spot in TEMPIN individually and 
count the number of Is (organisms) 
in the eight adjacent spots. This 
works, but there is a simpler way to 
approach the problem. Every organ¬ 
ism (marked in TEMPIN with a 1) 
has eight adjacent locations. If we 
add Is to the eight locations adja¬ 
cent to each organism in TEMPIN, 
the result is the same as the original 
suggestion: every spot with n adja¬ 
cent organisms holds the number n. 

The Is can be added to the 
TEMPIN variable using two APL 
rotate operators (refer to figure 1). 
Line 1 of NUMNEIGHBORS tem¬ 
porarily shifts TEMPIN (a copy of 
COLONYIN, which is NEXTGEN's 
copy of the COLONY board) up one 
row and left one column, and stores 
this matrix in TEMPOUT. This 
procedure puts a 1 in each location 
that is up and to the left of an or¬ 
ganism. Line 2 temporarily shifts 
TEMPIN up one row and adds this 
to the previous TEMPOUT matrix. 
For each organism on the board 
(TEMPIN), a I has been added to 
the two locations: up one and left 
one; and up one. For each empty 
spot on the game board. Os have 
been harmlessly added to the same 
two relative locations since empty 
spots are represented by Os. 

Lines 3 through 8 of NUM¬ 
NEIGHBORS repeat this process for 
the remaining six locations adjacent 
to each organism. When NUM¬ 
NEIGHBORS finishes, each or¬ 
ganism has added a I to each of its 
eight adjacent spots. The final 


count, stored in the temporary 
output matrix TEMPOUT, is as¬ 
signed to NEIGHBORS in line 1 of 
the NEXTGEN function. 

The random Function 

RANDOM demonstrates APL's sim¬ 
ple facilities for random number 
generation. For small game boards, 
such as those in figure 5, a Life 
program user could create his own 
initial COLONY matrix. However, 
Life is most interesting with a board 
measuring 15 by 15 or larger—even 


though typing in 225 matrix ele¬ 
ments is somewhat tedious. 

The RANDOM function will 
scatter organisms randomly 
throughout COLONY. A user has 
some control over how COLONY 
starts oflf, since he uses the DEN¬ 
SITY variable to select the approxi¬ 
mate initial percentage of occupied 
COLONY locations. If the user se¬ 
lects an initial population density 
that is too low (5 percent) the organ¬ 
isms are spread thinly, and they rap¬ 
idly die out because they have 


142 


PC Tech Journal 
































What’s the best recommendation 
you can make \siienyou^ asked 
about business graphics? 



The New 
Business Profes¬ 
sional Plotter from 
Hewlett-Packard— 

The 6-Pen HP 7475A 

Today, business professionals are 
becoming more aware of the vital im¬ 
portance of business graphics to their 
success. Tomorrow, they may be asking for 
your recommendation. Here’s some important 
information that will help you. Tell them... 

Make a first impression that lasts 

Truly impressive graphic presentations can create a first 
impression of quality and professionalism that lasts and 
lasts. The way you present your information can be equally 
as important as the information you’re presenting. And that’s 
where the new HP 7475A Business Professional Plotter lets your 
professionalism shine through. 

Standards unsurpassed in the plotter business 

The technical standards of the HP 7475A have no equal for produc¬ 
ing quality graphics. With a resolution of one-thousandth-of-an- 
inch, curved lines are smooth, not jagged, and straight lines are 
consistently straight. Its exceptional repeatability (the ability of a 
pen to return precisely to a given point), assures that intersecting 
lines and circular shapes will meet exactly 

Compatible with almost any personal computer 
in your office and supported on today’s most 
popular graphics software packages 

The HP 7475A quickly “makes friends” with most of the personal 
computers you may already have in your office, including IBM®, 
Apple™, Compaq™, Osborne®, and Commodore™—as well as a 
host of HP computers. You even have a choice of many off-the- 
shelf software packages that give you “first-day” productivity with 


Another choice: 
HP’s low-cost, 
high performance 
Personal Computer 
Plotter 


For the “business on a budget,” you 
may also want a look at our 2-pen 
Personal Computer Plotter, the HP 
7470A. Its low-cost (only $1095) is as 
remarkable as the quality of its plots. With 
many of the same features as the new HP 7475A, 
the HP 7470A plots on media up to x 11/' It 
stores and caps two-pens, and you can easily change 
the pens for multi-color plotting. 


Name. 


. Title 


Company. 


1101304 

I-—I 

I YES! I want to make the most informed business graphics | 
I recommendation I can. Please send me your FREE “Better | 
I Presentation Package,” so I can learn more about the new HP | 
I 7475A Business Professional Plotter and the HP 7470A i 
I Personal Computer Plotter. I understand I will receive this ■ 
I valuable package without cost or obligation. j 


Send for your FREE ‘^Better Presentations 
Package!*’ today! 


For a FREE sample plot, overhead transparency, and more details, 
mail the coupon below. We’ll also enclose a list of software packages 
you can use right “off-the-shelf!’ 

CIRCLE NO. 238 ON READER SERVICE CARD _ 

For the name of your nearest HEWLETT 

Hewlett-Packard dealer call PACKARD 

toll-free 800-FOR-HPPC. 


the HP 7475A. 


Address 


Your Choice: 2 media sizes 


While most professional business applications will be satisfied 
with standard 8!4 x 11" paper or transparencies, the HP 7475A 
adds the capability of plotting on larger 11 x 17" media, too. 


City, State & Zip_ 

Phone Number ( ) 


The cost? Surprisingly affordable 


My computer is 


The new HP 7475A Business Professional Plotter is an amazingly 
affordable $1895. When you consider the high cost of having your 
graphics prepared by an outside service, you’ll find the return on your 
investment is almost immediate. 


Send to: Hewlett-Packard, 16399 W. Bernardo Drive, 

San Diego, CA 92127 

Attn: Marketing Communications 

^ 11304PT9 














APL 


fewer than two neighbors. If the 
initial population is too dense (50 
percent or more), massive initial 
overcrowding thins the organisms 
quickly. Initial densities from 15 to 
30 percent seem to fare best. 

Although RANDOM (figure 8) 
is only one line in APL, the core ex¬ 
pression, SIZE, SIZE P100, creates a 
matrix with SIZE rows and SIZE 
columns, with the value 100 in 
each location. When the ? operator, 
called roll, is applied to this matrix, 
it replaces each 100 with a random 
number from 1 to 100 inclusive. 

Each element of this new ma¬ 
trix (which is now filled with ran¬ 
dom numbers from 1 to 100) is com¬ 
pared to the global variable DEN¬ 
SITY, a scalar value of 1 to 100. The 
COLONY matrix is created with a 1 
in every location in which the ran¬ 
dom number was less than or equal 
to DENSITY, and a 0 in every other 
spot. For a low DENSITY value like 
5, about 5 percent of the random 
numbers will be less than or equal 
to DENSITY, so about 5 percent of 
COLONY elements will be Is. 

The SHOWCOLONY 
Function 

The SHOWCOLONY function (fig¬ 
ure 9) introduces APL character 
handling and provides an example 
of the language's powerful array in¬ 
dexing. To display the successive 
generations of COLONY, the user 
could just print out the variable 
COLONY. However, the resulting 
pattern of Is and Os would be a bit 
overwhelming. SHOWCOLONY is 
used to transform COLONY to the 
CHAROUT format shown in figure 
10. Three characters are used in the 
print-out: an X for the colony bor¬ 
ders, a space for empty spots, and 
the letter O for organisms. 

SHOWCOLONY can be fit on 
two or three lines if no temporary 
variables are used, but the resulting 
definition is rather obscure. The 
temporary variables CHARINDEX 
and CHAROUT are introduced to 


Figure 13: A Sample Run of the LIFEGAME Program 

H A Sample run of the Life Game Proqram 

H <— NOTE: this symbol starts an APL comment; anything 
R typed after it is ignored bv APL. 


H ++<-++ INSTRUCTIONS +++ + + 

H 1. Assign the sise of the game board to SIZE. 

R 2. Assign a density from 1 to 100 to DENSITY. 

R 3. Type’LIFEGAME ... 

H +++++ EXAMPLE: +++++ 

SIZE ^ 20 
DENSITY <- ^ 

LIFEGAME 

XXXXXXXXXXXXXXXXXXXX 


xxxxxxxxxxxxxxxxxxxx 


o o 
0 0 0 
0 0 o 
0 0 
0 0 0 


o 

o o 


xxxxxxxxxx 

GENERATION NUMBER: 
CURRENT POPULATION: 


XXXXXXXX 


xxxxxxxxxxxxxxxxxxxx 

GENERATION NUMBER: 5 
CURRENT POPULATION; 32 


xxxxxxxxxxxxxxxxxxxx 


xxxxxxxxxxxxxxxxxxx 


0 □ 
0 


0 o 
0 


xxxxxxxxx 

GENERATION NUMBER: 
CURRENT POPULATION; 22 


xxxxxxxxxxx 


xxxxxxxxxxxxxxxxxxxx 

GENERATION NUMBER; 6 
CURRENT POPULATION; 16 


xxxxxxxxxxxxxxxxxxxx 


xxxxxxxxxxxxxxxxxxxx 


0 0 0 
0 0 


0 o 
0 0 


0 0 
0 o 


xxxxxxxxx 

GENERATION NUMBER: 
CURRENT POPULATION; 


XXXXXXXXXXX 

3 

26 


XXXXXXXXXXXXXXXXXXXX 


0 0 0 0 0 0 


XXXXXXXXXXXXXXXXXXXX 
GENERATION NUMBER: 4 
CURRENT POPULATION: 18 


XXXXXXXXXXXXXXXXXXXX 
GENERATION NUMBER: 7 
CURRENT POPULATION; 4 


XXXXXXXXXXXXXXXXXXXX 


O O 
O O 


XXXXXXXXXXXXXXXXXXXX 
GENERATION NUMBER: 8 
CURRENT POPULATION: 4 


144 


PC Tech Journal 










Figure 14: ModiRed RANDOM Function 


L 

01 

RANDOM 




C 

n 

R create 

a 

20x20 matrix of O's 

C 

23 

COLONY 

«■ 

20 

20 P 0 

C 

33 

R 




C 

43 

R put 

1 

' 5 

in COLONY to define Cheshire 

C 

53 

R 



Cat pattern 

C 

63 

COLONY 

C 

7 

; 9 12 3 <- 1 

C 

73 

COLONY 

c 

8 

; 9 10 11 12 3 <■ 1 

C 

83 

COLONY 

c 

9 

10 11 ; 8 3 1 

C 

93 

COLONY 

c 

9 

10 11 ; 13 3 1 

c 

103 

COLONY 

c 

12 

; 9 10 11 12 3 «■ 1 

c 

113 

COLONY 

c 

10 

; 10 11 3 1 


alternating Os and Is that is twice as 
wide as COLONY. The expansion 
operator uses this as a template to 
form a new character matrix: in 
each row of CHAROUT, an extra 
blank is inserted for each 0 in the 
template, and a character in CHAR¬ 
OUT is inserted for each 1. This ex¬ 
panded version is printed by assign¬ 
ing it to the quad function. 


help logically separate subtasks 
within the function. It is wise to do 
this whenever a function definition 
starts to look a little complex. 

The function declaration for 
SHOWCOLONY is simpler than for 
NEXTGEN, NUMNEIGHBORS, 
and RANDOM. It has no input pa¬ 
rameter, and no output value is re¬ 
turned. SHOWCOLONY takes its 
input directly from COLONY and 
displays its output on the screen. 

The rightmost expression in 
line 1 of SHOWCOLONY (figure 9) 
adds 1 to every location in COL¬ 
ONY, so an organism is represented 
by a 2, and a blank spot by a 1. This 
intermediate result is added to BOR- 
DERMASK (which the function 
INITBORDER creates with Os 
around the outer edges, and Is in¬ 
side, as discussed below). The result 
of line 1 is a matrix (stored in 
CHARINDEX) that has a 1 in every 
border location, a 2 in each empty 
spot, and a 3 for each organism. 

Line 2 of SHOWCOLONY uses 
APL's powerful array indexing. 

Since CHARINDEX is a COLONY- 
sized matrix with values ranging 
from 1 (border) to 3 (organism), the 
dummy variable CHAROUT will 
be assigned a COLONY-sized matrix 
with an X in each location where 
CHARINDEX = 1, a space wher¬ 
ever CHARINDEX = 2, and an O 
wherever CHARINDEX = 3. 

A display of CHAROUT would 
look a little cramped. Line 3 of the 
SHOWCOLONY function uses the 
expansion operator \ to spread out 
CHAROUT when it is printed. The 
leftmost expression creates a row of 


Winchester power 
for your PC 



The proven Winchester subsystem drives for your IBM 
or compatible PC. 10,15, 25, or 33 mesabytes of bis 
system storase in a DiskSystem® you simply plus into 
your system and it’s ready to use. At prices that make 
the speed and storase of a Winchester practical. Only 
$1495 for a 10 mesabyte DiskSystem, $1795 for 15 
mesabytes, $2245 for 25 mesabytes, or $2795 for 33 
mesabytes. DiskSystems can be bootable from the 
Winchester. See your dealer today for DiskSystem 
power for your PC. 


Interface Inc 


21101 Osborne Street 
Canosa Park, CA 91304 
(818) 341 -7914 • Telex: 662949 


Dealer Inquiries Invited 

DiskSystems is a copyright of Interface Inc. IBM is a registered trademark of IBM 
Corporation. Prices are suggested retail and are subject to change without notice. 


September i984 


DEALER INQUIRIES CIRCLE NO. 149 ON READER SERVICE CARD 
END USERS CIRCLE NO. 205 ON READER SERVICE CARD 



















APL 


Casual or Serious: Which APL System to Choose 



T have used two APL systems for memory management. The IBM 

X the IBM PC: the recently released package will print the complete APL 

IBM package (which I own) and the character set only on an IBM graph- 

STSC version. Based upon reviews ics printer. I have an Epson FX-80, 

published in the past several months which almost does the trick, but a 
and based upon my own experience, few characters don't print correctly. 

I recommend the IBM package for Perhaps some clever programmers 

the casual APL user and STSC's APL will come up with special APL print- 
for the enthusiast. er software in the near future. 

Although the STSC APL system My second complaint with the 

costs three times more than IBM's IBM package is its stinginess with 

$195, the IBM system requires the memory. My PC has 512K of mem- 

8087 Math Coprocessor. This addi- ory, but the APL active workspace is 

tional purchase will effectively raise still limited to 64K. This inadequate 

the price of the IBM package by memory management restricts pro- 

$200 to $250. grammers with even moderate 

IBM's APL uses a color graphics amounts of data. Remaining memory 
adapter so special APL symbols can forms an "elastic" workspace that 

be displayed with no special hard- can hold functions and data not im- 

ware. It can use the monochrome mediately required. APL automati- 

adapter as well, but will not cor- cally (and slowly) swaps objects be- 

rectly display all of the APL sym- tween the 64K active workspace 

bols. The STSC system works with where all calculations take place and 

either display adapter, but requires a this elastic workspace reservoir, but 
special APL character ROM. This with a noticeable time penalty, 

makes for a more readable display The STSC package suffers from 

using APL, but the screen may look neither lack of printer support nor 

strange with other software, since APL inadequate memory, 
symbols will be substituted for The lower-priced IBM APL 

certain characters in the original package is clearly intended for a cas- 

(replaced) IBM ROM. ual user, such as an engineer or busi- 

Several auxiliary software mod- ness person who needs inexpensive 

ules extend the IBM APL system to access to an APL system with moder- 

allow file handling, display manage- ate capability. A PC dedicated to 

ment, music generation, and full- more serious engineering, business, 

screen function editing. STSC has a or educational applications would be 

few extension packages as well. better equipped with the STSC's APL 

IBM's APL is especially lacking package than with IBM's, 

in two areas: printer support and —Pardner Wynn 



Lines 4 and 5 print out strings 
indicating the current generation 
number and population count. 
Format and concatenate operators 
are used to convert the numeric 
GENERATION and POPULATION 
variables into strings and to add 
them to the end of the message 
strings. These arrays are assigned to 
the quad function for printing. 

SHOWCOLONY's last two lines 
(6 and 7) print two blank lines by 
assigning an empty string to quad. 

The INITBORDER 

Function 

INITBORDER creates a matrix 
filled with Is except for a ring of Os 
around the outer border. This ma¬ 
trix is used by SHOWCOLONY and 
LIFEGAME. Line 1 of INITBOR¬ 
DER (figure 11) creates a square ma¬ 
trix with SIZE rows and columns 
called BORDERMASK (figure 10). 
The matrix is initialized to all Is. 
SIZE is a global variable that holds 
the size of the COLONY matrix. 

Lines 2 and 3 put Os in the first 
and last rows and columns of BOR¬ 
DERMASK. BORDERMASK[l SIZE 
; ] in line 2 refers to every element 
in rows 1 and SIZE—when no col¬ 
umn numbers are specified every 
column is assumed. So line 2 puts Os 
in rows 1 and SIZE. Line 3 puts Os 
in columns 1 and SIZE. BORDER- 
MASK is thus a matrix the same 
size as the game board fitted with Is 
except for a ring of Os along the out¬ 
er edge. 

SHOWCOLONY uses BORDER- 
MASK to help print out the border 
area of the COLONY game board 
with a special character. Another 
function, LIFEGAME, uses BOR¬ 
DERMASK to sterilize the outer 
border of the COLONY game board 
by ANDing these two variables. 

This prevents organisms from get¬ 
ting to the edge of the game board. 

The LIFEGAME Function 

The LIFEGAME function controls 
I the overall Life simulation (see fig¬ 


ure 12). Line 1 uses the function 
INITBORDER to create the BOR¬ 
DERMASK variable used in SHOW- 
COLONY and later in LIFEGAME. 
In line 2, RANDOM is used to 
create the COLONY matrix and to 
(randomly) initialize it to the first 
generation of organisms. Line 3 uses 
BORDERMASK to sterilize the 
outer border of COLONY. 

The total number of organisms 
in this first generation is tallied in 
line 4. The expression COLONY 
unravels COLONY from matrix 
form into one long row of Is and Os. 
The expression +/,COLONY 
(called a row reduction) adds the Is 
and Os in the unraveled COL¬ 


ONY row. This organism count is 
put into POPULATION. 

The current colony GENER¬ 
ATION number is initialized to 1 
in line 5. Line 6 is an APL branch 
statement. It is read: 'This line is 
labeled 'LOOP'. Go to the line 
labeled 'END' if POPULATION = 
0." That is, when all organisms are 
dead, the program will branch to the 
statement labeled END (line 13). 

SHOWCOLONY displays the 
current COLONY in line 7, then 
computes the next generation of the 
colony in line 8 using the NEXT- 
GEN function. GENERATION is 
incremented to indicate the current 
generation number in line 9. 


146 


PC Tech Journal 











Like lines 3 and 4, lines 10 and 

11 of LIFEGAME sterilize the col¬ 
ony border before counting the 
number of organisms present. Line 

12 is a jump to line 6 (labeled 
LOOP), which is done to repeat the 
display and update functions in 
lines 7 through 11 until the organ¬ 
isms are dead. A brief termination 
message is printed in line 13, fol¬ 
lowed by another one in line 14. 

The Life Program 

Before running the Life program, 
the user should select the desired 
size of the COLONY game board 
and assign it to SIZE. A value of 15 
will create a 15-by-15 matrix for 
COLONY. The DENSITY variable 
should be set to any number from 1 
to 100 (15 to 30 for best results). 
Typing LIFEGAME will start the 
simulation. Figure 13 shows LIFE- 
GAME being run on IBM's APL. 

The colony of organisms alter¬ 
nately expands and contracts in fas¬ 
cinating patterns. The program 
prints successive generations on the 
computer display until no organ¬ 
isms remain. In some cases the col¬ 
ony never dies out, so the program 
continues to execute until the user 
presses the APL INTERRUPT key 
(the Escape key in IBM's APL). 

Although the random patterns 
produced by the original RANDOM 
function are interesting, the user 
may want to define his own pat¬ 
terns. To do this, modify RAN¬ 
DOM to create COLONY with any 
size and any pattern of Is and Os. 
The sample session of figure 13 was 
run with a modified version of the 
RANDOM function, which assigns 
COLONY a pattern of 18 organisms 
called the Cheshire Cat (see figure 
14). This pattern fades away in gen¬ 
erations 2 through 6, leaving a smile 
in generation 7 and a paw print in 
generation 8. 

Using APL 

Three generalizations about the Life 
program point out APL's usefulness 


in a wide variety of programming 
applications. First, Life's simple data 
structures allow use of APL's power¬ 
ful array manipulation facilities. 

Few languages support data struc¬ 
tures as well as APL. Second, an 
APL expression or operation applied 
to matrix data automatically applies 
to the entire matrix—whatever its 


size. Finally, by dividing the pro¬ 
gram into several smaller modules 
the user can concentrate on one pro¬ 
gramming task at a time. APL sup¬ 
ports this modularity with flexible 
function declarations and use of 
temporary variables. 



THE MOST EXTENSIVE 
LIBRARIES ANYWHERE 

for the IBM PC, XT 


THE GREENLEAF FUNCTIONS 

Total Access to the PC 


PROFESSIONAL PROGRAMMER’S TOOLS, With Comprehensive 
Manual, Full Source, Examples, Demos, (Sc Newsletter. 


Supports All Major Compilers, All Memory Models, DOS 1.1, 2.0, 2.1 


IBM ♦ Honeywell ♦ Control Data ♦ GE ♦ Lotus . . . 
Hospitals • Universities * Government ♦ Aerospace 
Why not for your application? 


Save Months of Painstaking Research 


GENERAL LIBRARY - What You Would Write If You Had The Time 

♦ 200 functions ♦ DOS 2.0 ♦ Video ♦ String ♦ Printer ♦ Async ♦ Color ♦ Time (Sc Date 

♦ Function Keys ♦ Diagnostic * More 


#L2 for Lattice or Microsoft, or #C2 for Cl C86 
#D1 for DeSmet C. 


$17500 
$ 9900 


ASYNC COMM LIBRARY - Interrupt Driven Communications Capability 

♦ Polled Mode ♦ Interrupt Mode ♦ Ring Bufferred ♦ Modem Control ♦ CRC 

♦ XMODEM Protocol Pieces ♦ More 


#L3 for Lattice or Microsoft, of #C2 for Cl C86 
#D3 for DeSmet C .... 


$16000 
$ 8500 


#CC1 Computer Innovations C86 Compiler V2.1 
#CC2 Lattice C Compiler V2.1. 


$34900 

$39500 


Add $ 7.00 Shipping Per Item 
Specif/ Compiler and 
Our Part Number 


Order Direct or Ask Your Dealer 
MasterCard or VISA Accepted 


GREENLEAF SOFTWARE, INC. 

2101 HICKORY DRIVE • CARROLLTON, TEXAS 75006 


September i984 


CIRCLE NO. 105 ON READER SERVICE CARD 


147 



























Mite is a trademark of Mycroft, Inc. 


NCVATCN 

TALKS BUSINESS 


Introducing the LSI Cat Communication 
System™with the Hayes compatible 300/1200 
SA77ar^Ca^PfuS™modem. 



iii^K'ATK^ 


NOVATION 


ArtOMN«NKATK>SS'l-Sn- 


)VATION 


^ aiMXti XTCXTR tv: SYSTEM 


No more wondering what goes with 
what. Here’s the best modem and the best 
software for your specific computer—all in 
one package. 

Will your computer take an internal 
modem? Or do you prefer a stand-alone? 
And which operating system do you need— 

CP/M, CP/M-86, PC-DOS, MS-DOS? 
The Cat System includes them all. 

And no compromises. 

The quality starts with our new Smart- 
Cat PLUS modem. There is absolutely 
nothing else to equal it on the market. You 
get faster more accurate dialing. Automatic 
self-testing of the full communications cir¬ 
cuit. State-of-the-art advanced LSI circuitry. 
And more. It is simply the best there is. 

CIRCLE NO. 103 ON READER SERVICE CARD 


The software is MITE'^'^ —menu-driven, 
easy-to-use, remarkably powerful. It gives you 
error-free data communications and instant 
access to Dow Jones, CompuServe and the like. 

With the Cat System everything you get 
is the best of everything—that includes the 
best price. Suggested retail: $499. 

See your dealer. He has them right now. 

Seven models covering the IBM-PCs and 
their look-alikes, DEC Rainbow, KAYPRO and 
their operating systems. More models to come. 

Novation, Inc., Box 2875 
20409 Prairie Street, Chatsworth, CA 91311 
(800) 423-5419 • In California: (818) 996-5060 


NOVATION 


novation I 


NOVWCN 

t :Ar( X AIMl NR 'AI KNiSIB 











Discover 
Solutions 
With Vision 


Dealers are finding Pacific Datanets 
Vision ' hard disk subsystems are 
today's personal computer users' 
choice for mass storage subsystems. 

The Vision Series is more than 
illusionary— read on! 

Capacit}’ A variety of subsystems — 
12,10Mb. 19/17Mb. 26/21 Mb, 
40:32Mb. 50/43Mb. 70/62Mb. 

105 92Mb. and 140/125Mb. 

Spftnare Menu-driven software 
makes installation simple with the 
IBM PC. XT. or IBM compatible. 

Complete Sub-System Vision Series 
are complete. Subsystems include 
a 5 ^ 4 " Winchester, our controller, host 
adapter, heavy duty international 
power supply, software and cables. 


Fast Tape Backup . 5J4I' " tape 
streamer backs up at acansistent&Mb 
per minute, using standard 90 Jps, 

V 4 " tapes.' 

Error Correction Subsystems 
provide 8 bit error correction. 

Reliability Stringent quality control 
assures reliable operation. 

Price Prices start atS2.195 for the 
hard disk subsystem, and $1,995 for 
the streaming tape backup. 

Dealer Inquiries Invited 

PACIFIC DATA NET. LTD. 

4701 Patrick Henry Drive, Bldg. 9 

Santa Clara, CA 95054 

(408) 980-0693 Telex: 759341 

" VISION is a trademark of Pacific Datanet. Ltd. 

*IBM is a trademark of International Business Machines Corp. 
CIRCLE NO 169 ON READER SERVICE CARD 



PaciliG Dabaneti 


























ALL AT OSCE! 

MID NEVER A “LOCKED OUT” USER! 



Apex Industries Customer Data 


Customer Id: Acme 
Customer Name: Acme Industries 

Credit Rating: AA Credit Limit: 25000 
Current Balance: 12500 

30 Day Balance: 4000 

60 Day Balance: 1500 



90 Day Balance: 0 

Billing: 

Address: 2701 South Bayshore Drive 
City: Miami State: FL Zip: 33133 
Shipping: 


. flpf®'*’**’ 



Address: 913 Majorca Avenue 

City: Coral Gables State: FL Zip: 33134 

Phone: 305-856-7503 Contact: Gerald Green 



r 



S<fed»»0 


et» 


iin*!* 


on 




Dataplex is the only application development takes to actually write it to the file! The updated 

database which automatically Qw/es you true record is then immediately available. The 
multi-user capabilities. Other systems can lock number of users who can access, and change, 
you out of records or entire files for the full records at the same time is limited only by 

time they are being used by someone else. the number of terminals on your system or 

Dataplex, however, locks only the data being network. Call or write today for all the details 
changed, and only during the micro-seconds it on Dataplex... the true multi-user database. 


8525 SW129 Terrace, Miami, PL 33156 (305) 238-0012 
Telex 469021 DATA ACCESS Cl 

CIRCLE NO. 146 ON READER SERVICE CARD 


Compatible with CP/M-80, MSDOS networks, MP/M-86, Novell Sharenet, PC-Net, DMS Hi-net, TurboDOS multi-user 
N-Star, Televideo MmmOST, Action DPC/OS. IBM PC w/Corvus, OMNINET, 3Com EtherSeries and Micromation 1 
MSDOS Is a trademark ot Microsoft. CP/M and MP/M are trademarks of Digital Research. 


Molecular 

M/NET. 











Gregg L. Pettit 



Macros that give the programmer 
access to the power 
of assembly language and the 
convenience of structured programming 




A ssembly language is a powerful 
and useful tool; it can make a 
computer do anything within that 
computer's capability. The language 
does have drawbacks, however. For 
example, many instructions have to 
be written to accomplish what 
might be considered a single func¬ 
tion. These drawbacks led to the de¬ 
velopment of more convenient 
higher-level languages in which a 
single statement can represent many 
assembly language instructions. 

Some languages were developed 
for specific purposes, as COBOL was 
for business data processing and 


Gregg L. Pettit is a data processing 
programmer writing general-purpose software 
for Harry and David Company, a subsidiary 
of Bear Creek Corporation, located in 
Medford, Oregon. 


FORTRAN for statistical/engineer¬ 
ing purposes. Other languages, such 
as PL/1, were developed for general 
purposes. In the hands of expert 
programmers these languages pro¬ 
vide excellent solutions to a wide 
class of problems. Fiowever, for de¬ 
veloping utilities, general-purpose 
programs, interactive graphic games, 
etc., assembly language is probably 
still the best choice because of its 
access to the full range of the com¬ 
puter's capabilities. 

Another reason for choosing 
one of the "higher-level circus ani¬ 
mals" rather than assembly lan¬ 
guage is that most higher-level lan¬ 
guages provide the logical structures 
needed for structured programming, 
while assembly languages tradition¬ 
ally do not. One of the ways this ob¬ 


jection can be overcome is through 
the use of a well-designed set of 
macros that provides the kind of 
control structures that are found in 
higher-level languages. 

In our data processing shop we 
use a set of macros that provides 
structured programming capability 
for the IBM/370 assembly language. 
Having found these macros advanta¬ 
geous, I set out to implement the IF 
and the DO sets for use with the PC 
Macro Assembler. 

(Note: The names of the macros 
in the IF macro set for the PC are 
suffixed with an M because the PC 
Macro Assembler reserves the IF, 
ELSE, and ENDIF as conditional 
pseudo-ops. The conditional pseudo¬ 
op IF gives the PC Macro Assembler 
the capability to determine whether 


September i984 


151 










Macros 



Figure JL: Example of Flag Setting and Testing Instructions 


CMP CL,0 

;Compare the CL register to 0 

JE LABI 

;Te$t Flag Register 


;If the CL register was not 

. 

;equal to 0 execution continues 

Assembly 

instructions 

for CL not 
equal to 0 

;with these instructions. 

JMP LAB2 

;Jump unconditionally to LAB2 

, 

;Execution continues here if the 

Assembly 
instructions 
for CL equal 
to 0 

;CL register was equal to 0. 


LAB2: 


source code contained within the 
pseudo-op and its ENDIF is to be as¬ 
sembled based on the truth value of 
some expression.) 

Flag Setting and Testing 

The architecture of computers today 
provides two classes of instructions 
by which the logic of an assembly 
language program is accomplished. 
Instructions in the first class set 
some indicator that signals the re¬ 
sult of its execution. Those in the 
second class test the indicator that 
was set by the first class. Based on 
the result of that test, execution ei¬ 
ther continues with the next se¬ 
quential instruction or is transferred 
to some other instruction. 

The indicator provided by the 
8088 CPU is called the flags regis¬ 
ter. This register contains 12 flags or 
bits, some of which are set on or off 
by the result of actions by the first 
class of instructions. Some examples 
of these flag-setting instructions are 
the compare instruction (CMP), an 
arithmetical instruction such as sub¬ 
tract (SUB), etc. 

The 8088 CPU also provides the 
second class of instructions, such as 


Jump Equal (JE), Jump Not Equal 
(JNE), and Jump If Above or Equal 
(JAE), which tests the current status 
of the flags register and transfers ex¬ 
ecution to another instruction—that 
is, execution jumps to another in¬ 
struction if the condition is true. 
The logic of an assembly language 
program is accomplished through a 
combination of flag-setting and flag¬ 
testing instructions (see figure 1). 

Advantages of Macros 

One of the most important advan¬ 
tages gained in using the macros for 
structured programming is that the 
programmer need not explicitly 
code the jump statements and their 
destination labels,- the PC macros for 
structured programming provide 
this control implicitly. For instance, 
each macro set contains a header 
macro (IFM or DO) that generates a 
jump on the condition desired to 
the instructions to be executed for 
that condition. If the necessary con¬ 
dition is not met by the flags regis¬ 
ter at the time the jump on con¬ 
dition is executed, the following un¬ 
conditional JMP (also generated by 
the header macro) jumps to the 


Figure Example of Logic 
Provided by a DO WHILE and 
ENDDO Combination 



DO WHILE 

,CMP,DL, 

+7DW1: 

+ 

CMP 

CL,0 

+ 

JE 

7DL1 

+ 

JMP 

70E1 

+7DL1: 

. 



Assembler 


Instructions 


for 

CL equal 


zero 

• 


ENDDO 


+ 

JMP 

70W1 


+7DE1: 


trailer macro (ELSM, ENDIFM, or 
ENDDO). See figure 2 for the kind 
of logic provided by a DO WFFILE, 
ENDDO combination. The state¬ 
ments in figure 2 that begin with a 
" + were generated by the Macro 
Assembler from the DO WHILE, 
ENDDO macros. For further ex¬ 
amples of the logic generated by 
IFM and DO macro sets, see table 1. 

Coding time can be shortened 
by removing the time-consuming 
chore of inventing meaningful 
labels or keeping track of the func¬ 
tion of non-meaningful labels. An¬ 
other way to reduce coding time is 
by removing the possibility of mis¬ 
spelling labels or branching to the 
wrong label. For those who like to 
put their routines into flow charts, 
further gains in efficiency can be 
made by using decision paths that 
correspond to the structured pro¬ 
gramming macros. These macros 
can then be coded to follow the 
flow chart and give the logical 
structure on which to hang the de¬ 
tails of the code later. Following this 
procedure will increase the likeli¬ 
hood of getting the logic of the rou¬ 
tine correct from the start and thus 
will decrease debugging time. 


152 


PC Tech Journal 











Do it yourself! 



1 H’l iVm 


-- "■ 

■■ — 

.m-h ^mmmm mm . 

anitzi. 




When developing effective applications 
for the PC is a matter you want to take 
into your own hands, first get your 
hands on the APL^PLUS®/PC System 
from STSC. This unique application de¬ 
velopment tool gives you the power to 
deliver totally integrated, highly efficient 
solutions to problems that conventional 
software simply can’t handle. 

The APL^ PLUS/PC System is the 
most advanced application development 
system available today. And it includes 
enhancements for the professional, 
hobbyist, or novice programmer. 

—^Advanced saeen management 
facility with windowing and scrolling 
features. 

—Complete on-line HELP facility for 
novice users. 

—Powerful communication capability 
for moving data between computers. 
—Comprehensive color graphics 
capability, and much more. 

Because of the efficiency of the 
APL^PLUS/PC System, you can devel¬ 
op programs 4 to 10 times faster than 
with conventional languages like BASIC 
or FORTRAN. And the system can be 
integrated with other applications 
you’ve already bought, or used to link 
those that aren’t speaking to each other. 

It doesn’t demand that you abandon 
those skills you’ve learned or the soft¬ 
ware you’ve come to love. But it does 
enhance your programming power, so 
you can do what you do even better! 

Get the advanced capabilities of the 
APL^PLUS/PC System foronly $595.00, 
a valuable investment when you can have 
things done your own special way. To 
order the APL^PLUS/PC System see 
your local dealer or contact STSC, Inc., 
(800) 592-0050, 2115 East Jefferson 
Street, Rockville, Maryland 20852, 

(301) 984-5030 (Call collect). 

CIRCLE NO. 208 ON READER SERVICE CARD 


STSC 

A Contel Company 

The APL^PLUS/PC System runs on the IBM PC with 192 
KB of RAM, as well as on a number of compatible ma¬ 
chines. 


APL^PLUS is a service mark and trademark of STSC, Inc, 
registered in the United States Patent and Trademark Office 
and in certain other countries. 










NEW FEATURES 

(Free update for our early customers!) 

• Edit & Load multiple memory 
resident files. 

• Complete 8087 assembler 
mnemonics. 

• High level 8087 support. 

Full range transcendentals 
(tan, sin, cos, arctan, 

logs and exponentials) 

Data type conversion and 
I/O formatting. 

• High level interrupt support. 
Execute Forth words from with¬ 
in machine code primitives. 

• 80186 Assembler extensions for 
Tandy 2000, etc. 

• Video/Graphics interface for 
Data General Desktop Model 10 





FORTH 


Fully Optimized & Tested for: 
IBM-PC IBM-XT IBM-JR 

COMPAQ EAGLE-PC-2 

TANDY 2000 CORONA 
LEADING EDGE 

(Identical version runs on almost all 
MSDOS compatibles!) 

Graphics & Text 
(including windowed scrolling) 

• Music - foreground and 
background 

Includes multi-tasking example 

• Includes Forth-79 and Forth-83 
File and/or Screen interfaces 
Segment Management Support 
Full megabyte - programs or 
data 

• Complete Assembler 
(interactive, easy to use & learn) 

• Compare 

BYTE Sieve Benchmark jan83 
HS/FORTH 47 sec BASIC 2000 sec 
w/AUTO-OPT 9 sec Assembler 5 sec 
other Forths (mostly 64k) 70-140 sec 
FASTEST FORTH SYSTEM 
AVAILABLE. 

TWICE AS FAST AS OTHER 
FULL MEGABYTE FORTHS! 

(TEN TIMES FASTER WHEN USING AUTO-OPT!) 

HS/FORTH, complete system only: $250. 


— Visa Mastercard 
Add $10. shipping and handling 

HARVARD 

SOFTWORKS 

PO BOX 339 
HARVARD, MA 01451 
(617) 456-3021 

CIRCLE NO. 222 ON READER SERVICE CARD 


Macros 



Figure sj: An Illustration of the Readability of Assembly 
Language Code Using the Macros for Structured Programming 


Without Using Macros 


CMP DL,0 
JNE LBLNEl 
CMP CL,0 
JNE LBLNE2 

code A 

JMP FINIEQ 

code B 
JMP FINIEQ 

code C 


LBLNE2: 


LBLNEl: 


FINIEQ: 


A programmer must be able to 
determine the functions of the vari¬ 
ous parts of a routine—not to men¬ 
tion its overall function—if he is to 
be able to debug that routine or 
modify it later. Structured program¬ 
ming rnacros provide an advantage 
in this area as well by making the 
relationships between the various 
sections of code more obvious. 

Furthermore, since the PC's ma¬ 
cro assembly language allows in¬ 
structions to begin anywhere on a 
line, by indenting nested IFMs and 
DOs the programmer can get the 
same readability as in a higher-level 
language such as Pascal. A nested 
set of IFMs and ENDIFMs is much 
easier to follow than many CMPs 
that have explicit JMPs to labels 
and the corresponding labels. Figure 
3 illustrates the readability of as¬ 
sembly code using the macros for 
structured programming. 

The increased readability can 
be advantageous to programmers 
who are accustomed to using 


Using Macros 

IFM CMP,DL,E,0 
IFM CMP,CL,E,0 

code A 

ELSEM 

code B 

ENDIFM 

ELSEM 

code C 

ENDIFM 



Figure Two Open Strings of 
IFMs in a Set of Nested IFMs 


IFM E 


1 NE 



IFM B 



ENDIFM ( 
IFM E 

IFM NE 

*) 

1 

ENDIFM 

(**) 


IFM E 

ENDIFM 

(***) 

(3) j 

ENDIFM 

(2) 

1 


ENDIFM 

ENDIFM 


(1) 


higher-level languages, such as 
PL/1, Pascal, etc., because with the 
structured programming macros, 
programs will look more like those 
created with a higher-level lan¬ 
guage. More importantly, with the 
macros it is easier to structure as¬ 
sembly language programs in the 


154 


PC Tech Journal 















Fast and resfless. 


The new Delta-15 printer kicks out AnyCalc, 

easy as 1,2,3! 


In a 9 to 5 world full of changing spread¬ 
sheet data, you need a business printer that moves 
fast. A printer that constantly fires out printed infor¬ 
mation. A printer called Delta- 15 . 

Delta has the ability to print multi-copy 
spreadsheets at an intense 160 cps. Its throughput 
never rests. In fact, it never even wavers in speed. 
That means that Delta constantly fits the most work 
into every single second. 

Delta comes in a 10 " or 15 V2" carriage size. 
It offers you the flexibility of standard 8K parallel and 
serial interface. And has the ability to underline, 
accept macro instruction, and print characters that 
range from full graphics to everyday printing to sci¬ 
entific notations. 


Plus, as always, you get our unique 180 day 
warranty (90 days on print head). 

So for everyone who needs their spreadsheet 
data “yesterday,” this is as close as you can come! 
The new fast and restless Delta -15 business printer 
from Star. 



THE POWER BEHIND THE PRINTED WORD. 

200 Park Avenue, New York, NY 10166 

Dallas. TX (214) 456-0052 • Boston, MA (617) 329-8560 
Chicago. IL (312) 773-3717 • Irvine. CA (714) 586-8850 



















Macros 



1. The 

IFM Set: 


2. The 

DO Set; 



Format 

Example 

Format 


Example 



CMP DL.BYTE PTR 


DO INF 


00 INF 


IFH PI 

IFM E 

+7DW1: 


+70WI: 


+ 

JCP13 7IF1 

+ JE ?IF1 





+ 

JMP ?IS1 

+ JMP ?IS1 


code A 


code A 

+7IF1 


+7IF1: 









OOEXIT PI 


OOEXIT E 


code A 

code A 

+ - 

JC‘P13 7DX10 

+ 

JNE 70X10 




+ 

JMP 70E1 


JMP 70E1 


ELSEM 

ELSEM 

+7DX10; 


+70X10: 


+ 

JMP ?IE1 

+ JMP ?I£1 





+7IS1: 


+7IS1: 


code B 


code B 


code B 

code 8 


OOEXIT PI 


OOEXIT NE 




+ 

J["PX3 70X11 

+ 

JE 70X11 


ENDIFM 

ENDIFM 

+ 

JMP 70E1 

+ 

JMP 70E1 

+7IE1: 


+7IE1: 

+0X11: 


+DX11: 




*********************** 


code C 


code C 


IFM P1,P2,P3, 

,P4 IFM CMP,DL,E,0 


ENDDO 


ENDDO 

+ 

PI P2,P4 

+ CMP DL»0 

+ 

JMP ?0W1 


JMP 70W1 

+ 

JCP33 ?IF1 

+ JE 7IF1 

+70E1: 


+7DE1: 


+ 

JMP 7IS1 

+ JMP nsi 





+7IF1 


+7IF1: 


*********************** 





00 WHILE,PI.P2,P3,P4 


00 WHILE,CMP,OL.E.O 



*********************** 

+7DW1: 


+7DW1: 





+ 

PI P2,P4 

+ 

CMP DL,0 


IFM P1,P2,P3.P4,0R,P5,P6.P7,P8 IFM CMP.OL.E.O.OR.CMP.CL.E.O 

+ 

JCP33 70L1 

+ 

JE 70L1 

+ 

PI P2,P4 

+ CMP DL,0 


JMP ?DE1 

+ 

JMP 70E1 

+ 

JCP33 7IF1 

+ JE ?IF1 

+7DL1: 


+70L1: 


+ 

P5 P6,P8 

+ CMP CL,0 





+ 

JCP73 7IF1 

+ JE YIFl 


code A 


code A 

+ 

JMP 7IS1 

+ JMP ?ISl 





+7IF1; 


+7IF1: 


OOEXIT P1,P2,P3,P4 


OOEXIT CMP.CL.E.O 




+ 

PI P2,P4 

+ 

CMP CL,0 




+ 

JC’P33 70X20: 

+ 

JNE 7DX20 



********************** 

+ 

JMP 7DEI 

+ 

JMP 7DE1 


same way as those using a higher- 
level language are structured. 

Drawbacks of Macros 

Although these structured program¬ 
ming macros provide significant ad¬ 
vantages, they do have some disad¬ 
vantages. First and foremost, when¬ 
ever macros are used the compile 
time is significantly increased. For 
instance, one small test program of 
150 statements took 1 minute to 
compile. The same program written 
with structured programming ma¬ 
cros (one INITDOIF, eight IFMs 
with corresponding ENDIFMs, one 
ELSEM, one DO WHILE, and one 
DO UNTIL) took 2 minutes and 45 
seconds. For some experienced pro¬ 
grammers this could be a deciding 
factor against using these macros, 
because the time gained in using 


them may be lost in waiting for 
compilations to complete. 

One way to overcome this dis¬ 
advantage is to keep programs as 
modular as possible by building a 
module for each logical function re¬ 
quired by the program. Then when 
changes are necessary only the mod¬ 
ules affected need to be recompiled, 
and all the modules can be relinked 
to form the revised program. 

Another disadvantage of struc¬ 
tured programming macros is that 
they will increase the size of the ob¬ 
ject and load modules. The pro¬ 
grammer functioning without struc¬ 
tured programming macros can 
choose more efficiently how to 
jump (short or long) and when to do 
it. Long jumps (JMP) generate 3 
bytes of code and short jumps (JE, 
JNE, etc.) generate 2 bytes. 


With the structured program¬ 
ming macros that accompany this 
article, the jumps to the ELSEM, 
ENDIFM, or ENDDO are always 
long, so it will not matter how 
many lines of code are between the 

Z n weighing the advan¬ 
tages and disadvantages 
of using structured pro¬ 
gramming macros, it seems 
the advantages outweigh 
the disadvantages. 

header macro (IFM or DO) and its 
matching ending macro (ELSEM, 
ENDIFM, or ENDDO). The long 
JMP generated by IFM, ELSEM, or 
DO may be avoided if the program¬ 
mer generates that jump. 


156 


PC Tech Journal 






















+?0X20; 


code 


ENDOO 

JMP 


?OWl 


ENOOO 

JMP 


?DWl 


********************** 


*********************** 


+?0W1: 


DO UNTIL,PI,P2,P3,P4 

PI PZ,P4 
JC‘P33 ?Oll 
JMP ?OEl 


DO UNTIL,CMP,OL,E,0 

CMP DL,0 
JNE ?OLl 
JMP ?D£1 


DO ER0M,P1,P2,P3 
MOV P1,P2 

SUB P1,P3 
J6E ?OLl 
JMP ?DE1 


*********************** 



00 FROM,PI 


00 FR0M,DX 

+?DWl: 


+?DWl: 


+ 

DEC PI 

+ 

DEC OX 

+ 

JGE ?0LI 

+ 

JGE ?0L1 

+ 

JMP ?DE1 

+ 

JMP 7DE1 

+?DL1; 

code A 

+?DL1; 

code A 


ENOOO 


ENOOO 


JMP ’OWl 


JMP ?DW1 

+7DE1: 


+7DE1: 



ENDDO 

JMP 


DO FROM,DX,10,2 
MOV DX,10 

SUB DX,2 
J6E ?0L1 
JMP ?OEl 


ENOOO 

JMP ?0W1 


+70E1. 


+?DE1: 

*********************** 



DO FR0M,P1,P2,P3.P4 


00 FROM,DX,10,: 

+ 

+7DW1: 

MOV 

P1,P2 

+7DW1; 

MOV 

DX,10 


SUB 

Pl,P3 

+ 

SUB 

OX,2 

* 

CMP 

P1,P4 

+ 

CMP 

OX,6 

+ 

JGE 

7DL1 

* 

JGE 

70L1 

+ 

+7DL1; 

JMP 

7DE1 

+ 

+70L1; 

JMP 

70EI 


*********************** 



00 FROM, 

,Pl,P2 

00 FROM, 

,0X.10 

+ 

MOV 

P1,P2 


MOV 

DX,10 

+7DWI: 



+70W1: 



+ 

DEC 

PI 


DEC 

DX 

+ 

JGE 

70L1 

+ 

JGE 

?0LI 

+ 

JMP 

70E1 

+ 

JMP 

70E1 

+70L1: 



+7DL1; 




code A 


ENDOO 

JMP ?DW1 


code A 


ENODO 

JMP ?0W1 


+?DE1: 


+?0E1: 

********************** 


code A 


Note; Up to three separate- compare type statements may be connected 
by ORs or AMDs. Under the current implementation ORs and ANOs may not 
be mixed. 


Recommendations 

The advantages of using structured 
programming macros seem to out¬ 
weigh the disadvantages. The disad¬ 
vantages discussed here might be 
important to an experienced assem¬ 
bly language programmer who, in 
any case, has probably developed 
techniques with which he or she is 
comfortable. For the beginner, how¬ 
ever, the advantages can significant¬ 
ly increase the utility of the PC's 
macro assembly language. 

In its current state, the IBM PC 
macro assembly language is not 
very friendly to the implementation 
of structured programming macros. 
The IBM 370 assembly language 
has indexed global variables that 
can be used to stack the references 
to labels to which the header ma¬ 
cros must build jumps. When the 


trailer macros are encountered in 
the code these references can be un¬ 
stacked to build the actual labels 
referenced in the header macro. 

The PC's macro assembly lan¬ 
guage provides two pseudo-ops that, 
although not as convenient as a 
stack, nonetheless make it possible 
to provide an elegant and efficient 
implementation of the structured 
programming macros. An inelegant 
solution would be one in which the 
programmer must provide, as an ar¬ 
gument to each header macro (IFM 
or DO), a unique identifier that 
could be used by the macro to cus¬ 
tomize the labels it needs to gener¬ 
ate. The two pseudo-ops are the 
equal sign ( = ) and the IFDEF. 

The equal-sign pseudo-op allows 
the programmer to increment or 
decrement counters, which are then 


known globally—that is, to all the 
macros defined in the source code. 
This facility is used by the struc¬ 
tured programming macros to cus¬ 
tomize the labels referenced by the 
header macros (IFM or DO) by ap¬ 
pending a number to each label. In 
order to initialize the counters the 
INITDOIF macro must be included 
in the source code prior to the first 
use of any IFM or DO macros. Note 
that if the INITDOIF macro is not 
used before any IFM or DO macros, 
many error messages will be dis¬ 
played saying that various labels 
have not been defined. 

Because of the global counters 
referred to above, no more than four 
strings of DO or IFM macros may 
be open at any one time. This is be¬ 
cause each time an open string is 
created a counter for that string 


September i984 


157 







Macros 


must be saved and a new counter 
begun. Currently there are only 
eight counters implemented, four 
for the IFM macro and four for the 
DO macro. See figure 4 for an illus¬ 
tration of two open strings of IFMs 
in a set of nested IFMs. 

(In figure 4, the single asterisk 
indicates the closing ENDIFM of 
the last IFM in the first open string 


of IFMs. The IFM following that 
ENDIFM is assigned to be the sec¬ 
ond counter and begins the second 
string of open IFMs. The double as¬ 
terisk indicates the closing ENDIFM 
of the last IFM in the second string 
of open IFMs. Following that, the 
next IFM is assigned to be the third 
counter, and the third string of 
open IFMs is closed immediately by 


the following ENDIFM, which is 
indicated by the triple asterisk. The 
numbers in parentheses indicate the 
closing of each of their respective 
strings of open IFMs.) 

Fortunately, the limitation of 
four open strings of DO or IFM ma¬ 
cros is the only restriction on nest¬ 
ing such macros; they can be nested 
in any combination desired. In fact, 
these two sets of. structured pro¬ 
gramming macros for the IBM PC 
contain an enhancement not pro¬ 
vided by the same macros for the 
IBM 370. If a PC IFM macro is 
nested within a PC DO macro and a 
PC DOEXIT macro is executed 
within the range of the IFM macro 
(that is, before the closing ENDIFM 
macro), the DOEXIT macro will 
jump to the proper ENDDO macro. 
In the IBM 370 assembly language, 
on the other hand, the structured 
programming macros will generate 
undefined symbols if DOEXIT ma¬ 
cros are executed within IF macros. 

The second pseudo-op that is 
necessary for an elegant solution to 
implementing structured program¬ 
ming macros on the IBM PC is the 
IFDEF or its complement, IFNDEF. 
These pseudo-ops are used to deter¬ 
mine the next code produced by the 
macro assembler based on whether 
or not a symbol has been defined. 
Whenever an IFM macro is used, a 
JMP ?ISd: (where d stands for some 
number) is produced. This jump 
will be to either an ELSEM or an 
ENDIFM macro, depending on 
whether a matching ELSEM macro 
appears in the code for the header 
IFM macro. The ELSEM macro gen¬ 
erates a JMP ?IEd: to the ENDIFM 
macro and a ?ISd: label to head the 
code for the else condition. 

The ENDIFM macro deter¬ 
mines whether to generate a ?ISd: or 
a ?IEd: label. Under the current im¬ 
plementation of the structured pro¬ 
gramming macros, the ENDIFM 
tests to see if the ?ISd; label has 
been defined. If it has, the ENDIFM 
generates a ?IEd: label; otherwise a 
?ISd: label is generated. Surprisingly, 


PROGRAMMER’S 
GUIDE TO 



EDITED BY SOL LIBES 



H ere’s an important collection of 
CP/M insights that you’ll never 
find in any CP/M manual. CP/M 
is the most popular microcomputer 
DOS in use today, and this widespread 
use has generated many innovative 
techniques and enhancements of 
CP/M. Programmers Guide to CP/M 
tells you what these enhancements are 
and how to put them to use, how to get 
around apparent limitations of a 
CP/M system and why CP/M is far 
more versatile than you might have 
imagined. Every article in Program¬ 
mers Guide to CP/M originally ap¬ 
peared in MICROSYSTEMS between 


January 1980 and February 1982. Ex¬ 
cept for this collection, these articles 
are now unavailable! Programmer's 
Guide to CP/M gives you an in-depth 
look at CP/M from the viewpoint of 
the programmer—the individual who 
creates the software that interfaces di¬ 
rectly with CP/M, or who is installing 
CP/M on systems for which configura¬ 
tions do not already exist. 

Contents include “An Introduction 
to CP/M,’’ “The CP/M Connection,” 
“CP/M Software Reviews,” “CP/M Util¬ 
ities & Enhancement,” "CP/M 86” and 
“CP/M Software Directories." 200 
pages, $12.95. 


r 


MiemsysteiTis 


Send me . 


MICROSYSTEMS PRESS 

Dept. NN4H, 39 East Hanover Avenue 
Morris Plains, NJ 07950 

_copies of Programmer’s Guide to CP/M at $12.95 each, plus $2 for 

postage and handling. # 14C Also available at your local bookstore or computer store. 

□ Outside USA add $3.00 per order. 

□ PAYMENT ENCLOSED $:_ 

sales tax. 

□ CHARGE MY: □ American Express 


n 


_CA, NJ and NY State residents add applicable 

□ MasterCard □ Visa 


L 


Card No. 

.Signnturp 

Exp. Date 


Print Nnmp 



AHrlrp<;<: 

Apt. 


'f 

Citv 

State _Zio 


For faster service, CALL TOLL FREE; 800-631 -8112 



(In NJ only, call 201-540-0445) 

J 


158 


PC Tech Journal 































CIRCLE NO. 188 ON READER SERVICE CA] 


9^3 




: ■: When you v'tsjr your dealer ai; j 
compare ttK Princeton iBM-CMpat- 
ibleH^i2^ide'l3¥=^ide-withthe !BW 
color morrilBr. your eyes will-see the 
difference. 

;': The HX-12 gives you highepresolu- 
tion and finer dot pitch (3lmm) than 
the IBIVI5153'smedium resolution 
,(;43mm) for a cleaner, sharper iniage. 

Compare our full range of colors 
and our crisp whites without red 
bfeed. .You'll also see a difference in 
our.non-giare screen—a feature your 
eyes will reailly appreciate in a long 
ivyork session, ;: . / 


The !-rinceton HX-12 comes win ■ ,:i 
cable that plugs directly into the iEiVi 
pc, ready to burst forth into 16 
superb colors. All at a suggested retail 
price ($695) that's a pleasure for sore 
eyes and overworked budgets. 

Apple lie users: call us to learn 
how you, too, can now enjoy the vis¬ 
ible superiority of the Princeton 
HX-12. 

Ask your local dealer for a dernon- 
stration and let your eyes decide. Or 
call us at 800-221 -1490 for more infor¬ 
mation and the name of your nearest 


If you're readyito hid 


color, graddatfet&^PrtTOi^i^ 

..:' ■: : t yxicy-7-:^r-: 


Now<avaliabieatc6i^puie?l^d3tltfeand local 
indepeiiaentcompBWf dealers.; ■ ■ 

Nationwide service provided bv Bell anil Howell 
SfiiVlce Company and mai sorpusSerylcecompany: 


Princeton 
Graphic systems 

an Intelligent Sysleiris Company 


.iiOi- (State ftoad Princeton New Jersey 08540 
1609; 683-1660 :TLX:6857009 PCS Rrin.: 
.80D-22'r-1490 ' : ' ; '. 

.'T X ..- . 




OURS: .•3l’mrT>el6t pltch.-80 column t^t.> ^! ■ ' X : THEIRS:^ .43-nhm-ddt pitch.-’SCi 


column 




THE PRINCETON 2 




HIGH RESOLUTION RGB COLOR WIONITOR 


f0i^ the image 
your ;eyes: desehre 






























































































































































Z500 


programmers 
depend on us. 


... from giant corporations to small independents. There are 
many reasons why. First, THE PROGRAMMER’S SHOP 
provides the kind of personal service and support that is 
not available anywhere else: answers ... technical literature 
... newsletters... evaluation... special disk formats... 
rush delivery... and more. But that’s just the beginning. 
THE PROGRAMMER’S SHOP offers five times the product 
selection of any other supplier... at good prices. We are 
committed to helping you write better programs and get 
maximum productivity out of your software... while saving 
you time, trouble and money. Here are a few examples: 


UNIX'^forthelBM PC 

COHERENT by Williams is fast, 
coresident with PCDOS, well 
documented—for “C” 
developers. $475 

VENIX by Venturecom is a “true” 
UNIX. It fits needs for development 
and for business use. $775 

XENIX by Microsoft is a rich sys¬ 
tem, has applications available 
and a “High” 74 COBOL. $1325 

UNIX is a trademark of Bell Lab. 

ForCP/M-80 

ECOsoft C is now complete, rich, 
fast, has library source, trig $225 
Edit programs with VEDIT ($119), 
MINCE ($149) or“C”SEwith 
source ($75) 


Other Key Products 

C86 by Cl ($339), Lattice ($359) 
from Lifeboat or Microsoft, and 
Williams C ($475) are in a tight 
battle. Which is best for integra¬ 
tion with Fortran? 8087? support 
libraries? speed? debugging? 

FORTRAN-86 from Microsoft 
($259) is improving with libraries 
for graphics ($175), screen ($265), 
and statistics ($275). 

LISP by Integral Quality ($155) Is 
well rounded while GC Lisp ($465) 
supports syntax closer to “Com¬ 
mon LISP.” 

Graphic “C” library with source-for 
PC, Corona, printers, plotters, Hi-Res, 
8087option, with source $195 


PLINK-86 is a program- independent overlay Linker to 
32 levels for all MS Languages, C86 and Lattice. $315 
For a catalog, comparisons, prices, or for an info packet on AI, or Editors, “C,” 
BASIC, PASCAL, FORTRAN, or COBOL—or just for straight answers— 

CALL TOLL FREE 800-421-8006 


THE PlUXilLliHMEK’S SHOP “ 

The programmer’s complete source for software, services and answers 
128-P Rockland Street, Hanover, MA 02339 In Mass.: 800-442-8070 or 617-826-7531 


PROLOG-86 ^ 

Learn Fast, 
Experiment 

1 or 2 pages of PROLOG would require 
10 or 15 pages in “C." 

Be familiar in one evening. In a few 
days enhance artificial intelligence pro¬ 
grams included like; 

• an Expert System 

• Natural Language 

Intro price: $125 for PCDOS, CPM-86. 
Full Refund if not satisfied 

SOLUTION SYSTEMS 

45-PAccord Park, Norwell, MA02061 

617-871-5435 


C HELPER ^ 

UNIX-like utilities for 
C Programming 

Save time when working with your C 
programs. Fullsource lets you modify, 
helps you learn. 

Utilities included: compare files (DIFF), 
cross reference variables (CCREF), 
examine flow of functions (FCHART), 
search for patterns (GREP). Others 
check syntax, print yourway, more. 

$135 for MSDOS, CPM-86 or CPM80. 

SOLUTION SYSTEMS 

45-KAccord Park, Norwell, MA 02061 

617-871-5435 


Macros 


the ?IEd: label is always generated 
by the ENDIFM macro, whether or 
not an ELSEM is included for the 
header IFM macro. This piece of 
magic is not documented in the 
Macro Assembly Language manual. 



mphsingly, the ?IEd: 
label is always gener¬ 
ated by the ENDIFM 


macro, whether or not an 
ELSEM is included for the 
header IFM Macro. This 
piece of magic is not docu¬ 
mented in the Macro As¬ 
sembly Language manual 
that is provided by IBM. 


Apparently the reference to the 
?ISd: label—that is, JMP ?ISd: — 
generated by the header IFM 
macro constitutes definition of the 
symbol and not simply a reference. 
However, here is the magic; when 
no ?ISd: label is defined by an 
ELSEM macro, the macro assembler 
associates the reference to the ?ISd: 
label generated by the IFM with 
the ?IEd: label generated by the 
ENDIFM. The ?IEd: label prints in 
the expanded source listing of the 
compiled program. The ?ISd: label 
does not print in the expanded 
source listing but does print in the 
Symbol Table and the Cross Refer¬ 
ence, along with the ?IEd: label. 

The set of macros found in list¬ 
ings 1 through 9 will allow the pro¬ 
grammer to take advantage of the 
speed and power of assembly lan¬ 
guage without giving up the conve¬ 
nience of structured programming. 


CIRCLE NO. 239 ON READER SERVICE CARD 


PC Tech Journal 



























LETS TALK EXPERT-TO-EXPERT 

PC TECH JOURNAL, the only magazine written for sophisticated 
IBM PC users...talks with you expert to expert! 


Do you require a magazine that provides you with the 
insight and knowledge to act as your silent partner 
when developing new programs? Have you needed to 
consult with authorities in telecommunications to 
resolve a nagging problem? Wouldn't a 
second opinion about connecting your 
PC to a main-frame be helpful? With your 
subscription to PC TECH JOURNAL, 
you're harnessing experts in your field... 
experts who will talk to you in the lan¬ 
guage you understand, about the con¬ 
cerns you have...EXPERT TO EXPERT! 

PC TECH JOURNAL is the techno¬ 
logically sophisticated magazine written 
for experts in the field of personal com¬ 
puting like yourself...discussing the con¬ 
cerns experts have.. .developing elegant 
programming methodologies only experts 
can understand... covering the whole 
field of IBM PC's with thought-provoking 
articles on communications, distributed 
processing, office automation, network¬ 
ing and programming. 


Subscribe today and save up to 36% off the full 
subscription price, and have PC TECH JOURNAL 
delivered to your home or office every month! From 
One Expert to Another; subscribe today! 


mi— 


h(PC 

DURNA 


PT4Z007 


RO. Box 2966, Boulder, Colorado 80322 


I want to communicate with other experts and professionals about 
I IBM PC's and compatible machines! Please enter my subscription 

to PC TECH JOURNAL for: 

□ One year (12 issues) □ Two years for □ Three years for 

for $24.97-SAVE 17%! $43.97-SAVE 27%! $57.97-SAVE 36%! 


Mr./Mrs./Ms.- 
Company_ 

Address_ 


please print name in full 


State 


Zip 


City-_ 

Savings based on full one-year subscription price of $29.97. 

Check one: □ Payment enclosed. □ Bill me later. 
Charge my: D American Express D Visa O MasterCard 


Card No_ 

Add $12 a year in Canada and all other foreign countries. Please allow 30 to 60 days for delivery of first issue. 


JExp. Date- 







































Macros 


Listing 1INITDOIF Macro 


IFE 7CTI3X 

7CTI3 = 7CTI 

INITOOIF MACRO 


7CTI3X = 1 

?CT0=0 


ELSE 

?CTE=0 


7CTI3 = 7CTI3 +1 

?CT2X=0 


7CTI3X = 7CTI3X +I 

?CT3X=0 


ENDIF 

?CT4X=0 


ELSE 

?S1 = 0 


IFE 7SI4 

?S2 = 0 


IFE 7CTI4X 

?S3 = 0 


7CTI4 = 7CTr 

?S4 = 0 


7CTI4X = 1 

?CTI=0 


ELSE 

?CTI2X»0 


7CTI4 = 7CTI4 +1 

?CTI3X=0 


7CTI4X = 7CTI4X +1 

?CTI4X*0 


ENDIF 

?SI1 = 0 


ELSE 

?SI2 = 0 


MJMP MP,7IFERR 

?SI3 = 0 


ENDIF 

?SI4 = 0 


ENDIF 

ENDM 


ENDIF 



ENDIF 

Listing 2 IFM Macro 

IFM MACRO P1,P2,P3,P4,01,P5,P6,P7,P8,02,P9,P10,P11,P12 


IFB <P2> 

MJMP P1.7IF,X7CTI 

MJMP MP,7IS,%7CTI 

?CTA = 0 

?CTI = ?CTI + 1 


MLBL 7IF,%7CTI 

ELSE 

IFE ?SI1 


PI P2,P4 

?CTI1 = ?CTI 


IFIDN <01>,<AND> 

ELSE 

IFE ?SI2 

IFE ?CTI2X 

7CTI2 = ?CTI 


MJMP P3.7IA,%7CTI,%7CTA 

MJMP MP,7IS.17CTI 

MLBL 7IA,%7CTI,X7CTA 

7CTA = 7CTA + 1 

7CTI2X = 1 

ELSE 


P5 P6,PB 

MJMP P7,7IA,%7CTI,%7CTA 

?CTI2 = ?CTI2 +1 


MJMP MP,7IS,%7CTI 

7CTI2X = 7CTI2X +1 


MLBL 7IA,%7CTI,%7CTA 

ENOIF 


7CTA = 7CTA + 1 

ELSE 


IFIDN <02>,<AND> 

IFE 7SI3 


P9 P10,P12 





Have you heard? 


During the last 12 months, thousands 
of applications programmers dumped 
dBASE II. 


Why? 

Because dBASE II hasn’t improved 
a lick in years. And that makes it a 
whole generation behind Q-PRO 4... 
the 4th generation applications 
development language for 
microcomputers. 

With dBASE II, all the original bugs, 
complicated operations and absurd 
restrictions (like only two open files) 
are still there. dBASE II just can’t 
make it for applications in 1984. 


PR04 blows 


spreail the won! 












MJMP P11,?IF,%?CTI 

MJMP MP,?IS,X?CTI 

ENDIF 


Listing 4 ENDIFM Macro 

ENDIFM MACRO 



MLBL ?IF,%?CTI 


IFE 7CTI2X 



ELSE 


MALTLB ?IS,%?CTI1,?IE 



MJMP P3,?IF,%?CTI 


7CTI1 = 7CTI1 - 1 



IFION <01>,<0R> 


7SI1 = 1 



P5 P6,P8 


IFE 7CTI1 



MJMP P7,?IF,%?CTI 


7SI1 = 0 



IFIDN <02>,<0R> 


ENDIF 



P9 P10,P12 


ELSE 



MJMP P11,?IF,%?CTI 


IFE 7CTI3X 



ENDIF 


MALTLB 7IS,X?CTI2.?IE 



ENDIF 


7CTI2 = 7CTI2 - 1 



MJMP MP,?IS.%?CTI 


7CTI2X = 7CTI2X - 1 



MLBL ?IF,%?CTI 


7SI2 = 1 



ENDIF 


IFE 7CTI2X 



ENDIF 


7SI2 = 0 



ENDM 


ENDIF 





ELSE 





IFE 7CTI4X 



sJ ■ Ilf 1 XvXC»V>'XVF 


MALTLB ?IS,%7CTI3,7IE 





7CTI3 = 7CTI3 - 1 



ELSEM MACRO 


7CTI3X = 7CTI3X - 1 



IFE 7CTI2X 


7SI3 = 1 



?CTX =• 7CTI1 


IFE 7CTI3X 



ELSE 


7SI3 = 0 



IFE 7CTI3X 


ENDIF 



7CTX = 7CTI2 


ELSE 



ELSE 


MALTLB 7IS,X7CTI4,7IE 



IFE 7CTI4X 


7CTI4 = 7CTI4 - 1 



7CTX = 7CTI3 


7CTI4X = 7CTI4X - 1 



ELSE 


7SI4 = 1 



7CTX = 7CTI4 


IFE 7CTI4X 



ENDIF 


7SI4 = 0 



ENDIF 


ENDIF 



ENDIF 


ENDIF 



MJMP MP,7IE,X7CTX 


ENDIF 



MLBL ?IS,%7CTX 


ENDIF 



ENDM 


ENDM 




Apparently, Ashton Tate (the dBASE II 
merchant) is gambling you don’t 
know any better. It’s pitiful. 

Well, we’ve been blowing the whistle 
on Ashton...and Tate, too. 

And you can spread the word. 

Be one of the growing legions 
that’s moving up to Q-PRO 4... 
the complete 4th generation 
applications development system 
for microcomputers. 

You can use Q-PRO 4’s super 
efficient syntax to finish business 
programs much faster. And the 
extensive error trap and help screen 
capabilities make the finished soft¬ 
ware products far more friendly, too. 

As one convert put it, “O-PffO 4 
has it all...the formatted data entry 
field edits, and report generator are 
absolutely superb. 


“Any applications programmer still 
struggling with outdated 3rd gener¬ 
ation data base managers or worse, 
a 2nd generation language like 
BASIC Is ripping himself off ” 

So what are you waiting for? Here is 
your chance to dump all the dBASE II 
hassles and move up to Q-PRO 4... 
the sensational 4th generation 
language for faster, easier application 
development. 

You owe it to yourself, your career, 
and your family to move up to 
Q-PRO 4 now. It’s that good. 

Attention Q-PRO 4 Hotshots. 
Current version 3.0 includes Multi¬ 
key ISAM (true mainframe power). 


Runs with PCDOS, MS-DOS, CP/M, 
MP/M, CP/M86, MP/M86, TurboDOS, 
MmmOST, MUSE, and NSTAR. 

Single-user-$595; Multi-user-$795. 
Author's lock up package available. 
Finished applications are freely 
transportable between operating 
systems. Multi-user with true record 
and file lock. 

For Q-PRO 4 demonstration, 
go to the nearest MicroAge store 
or other fine dealer. 

136 Granite Hill Court 
Langhorne, PA 19047 
(215) 968-5966 Telex 291 -765 

CP/M, MP/M. CP/M86, and MP/M86 are trademarks of Digttal Research, TurboDOS, MmmOST, 
MUSE, NSTAR. MS-DOS and PCDOS are trademarks of Software 2000, TeleVideo Systems, 
O.S.M.. Molecular. Microsoft and IBM. respectively. 


nuic n easi nmducts inc. 

CIRCLE NO. 221 ON READER SERVICE CARD 










Macros 



Listing 5 DO Macro 


Listing 6 DOEXIT Macro 



DO MACRO TYP1,P1,P2,P3,P4 


OOEXIT MACRO P1,P2,P3,P4 



?CTD = ?CTD + 1 


IFE 7CT2X 



IFE ?S1 


7CTX = 7CT1 



?CT1 = ?CTD 


ELSE 



ELSE 


IFE 7CT3X 



IFE ?S2 


7CTX = 7CT2 



IFE ?CT2X 


ELSE 



?CT2 = ?CTD 


IFE 7CT4X 



7CT2X = 1 


7CTX = 7CT3 



ELSE 


ELSE 



?CT2 = ?CT2 +1 


7CTX = 7CT4 



?CT2X = ?CT2X +1 


ENDIF 



ENDIF 


ENDIF 



ELSE 


ENDIF 



IFE ?S3 


IFB <P1> 



IFE 7CT3X 


MJMP MP,7DE,X7CTX 



7CT3 = 7CTD 


ELSE 



7CT3X = 1 


IFB <P2> 



ELSE 


MJMPN P1,70X,S7CTX,%7CTE 



7CT3 = 7CT3 +1 


MJMP MP,7DE,%7CTX 



7CT3X = 7CT3X +1 


MLBL 70X,%7CTX,%7CTE 



ENDIF 


7CTE = 7CTE +1 



ELSE 


ELSE 



IFE 7S4 


PI P2,P4 



IFE 7CT4X 


MJMPN P3,70X,%7CTX,X7CTE 



7CT4 = 7CTD 


MJMP MP,7DE,%7CTX 



7CT4X = 1 


MLBL 7DX,t7CTX,X7CTE 



ELSE 


7CTE = 7CTE +1 



7CT4 = 7CT4 +1 


ENDIF 



7CT4X = 7CT4X +1 


ENDIF 



ENDIF 


ENDM 



ELSE 





MJMP MP,7D0ERR 





ENDIF 

ENDIF 


Listing 7 ENDDO Macro 



ENDIF 





ENDIF 


ENDDO MACRO 



IFIDN <TYP1>,<INF> 


IFE 7CT2X 



MLBL 7DW,X7CTD 


MJMP MP,7DW,X7CT1 



ELSE 


MLBL 70E,X7CT1 



IFIDN <TYP1>,<WHILE> 


7CT1 = 7CT1 - 1 



MLBL 70W,X7CTD 


7S1 = 1 



PI P2,P4 


IFE 7CT1 



MJMP P3,7DL.%7CTD 


7S1 = 0 



MJMP MP,7DE,%7CTO 


7CTE = 0 



MLBL 7DL.X7CT0 


ENDIF 



ELSE 


ELSE 



IFIDN <TYP1>,<UNTIL> 


IFE 7CT3X 



MLBL 7DW.%7CTD 


MJMP MP,7DW.X7CT2 



PI P2,P4 


MLBL 7DE,X7CT2 



MJMPN P3,7DL,%7CTD 


7CT2 = 7CT2 - 1 



MJMP MP,7DE,X7CTD 


7CT2X = 7CT2X - 1 



MLBL 7DL,%7CTD 


7S2 = 1 



ELSE 


IFE 7CT2X 



IFIDN <TYPl>.<FROM> 


7S2 = 0 



IFNB <P2> 


ENDIF 



MOV P1,P2 


ELSE 



ENDIF 


IFE 7CT4X 



MLBL 7DW,X7CTD 


MJMP MP,7DW,17CT3 



IFNB <P3> 


MLBL 7DE,X7CT3 



SUB P1,P3 


7CT3 = 7CT3 - 1 



ELSE 


7CT3X = 7CT3X - 1 



DEC PI 


7S3 = 1 



ENDIF 


IFE 7CT3X 



IFNB <P4> 


7S3 = 0 



CMP P1,P4 


ENDIF 



ENDIF 


ELSE 



MJMP GE,7DL,%7CTD 


MJMP MP,70W,X7CT4 



MJMP MP,70E,%7CTD 


MLBL 7DE,X7CT4 



MLBL 7DL,X7CTD 


7CT4 = 7CT4 - 1 



ELSE 


7CT4X = 7CT4X - 1 



MJMP MP,7BA0D0,%7CTD 


7S4 = 1 



ENDIF 


IFE 7CT4X 



ENDIF 


7S4 = 0 



ENDIF 


ENDIF 



ENDIF 


ENDIF 



ENDM 


ENDIF 





ENDIF 





ENDM 



IM 


PC Tech Journal 








Now, 

X-shell™ brings 
Unix™ capability to your PC 
for an amazingly low 


Computers. You know at least two 
things about them: One, they should 
be a tool for solving your problems. 
Not creating them. Two, you want 
to spend as litde time as possible 
on one. 


X-shefl 

Software Tools Padtage 

That’s why Standard DataCom, Inc. 
developed X-shell, a command 
interpreter software tools package for 
IBM PCs and MS-DOSTC-EX)S 
operating systems. 

X-shell helps your computer solve 
your problems faster. Makes the 
time you spend on the computer 
more efficient. Squeezes more out of 
your computer investment. 

Proven 
Unix Features 

X-shell gives you Unix capability by 
providing these proven Unix features: 

1. Support for pipelines and 
filters 

2. Input & output redirection 

3. Variable substitutions 

4. Command substitutions 

5. Filename expansion 

6. Nested command files 

7. Stmctured flow control: 
iFthen/else, while/do/done, 
until/do/done, case/esac, 
for/do/done 


Unix is a trademark of Bell Laboratories 
X-shell is a trademark of Standard DataCom. Int. 



Hardware Requirements 
(vdiere you can save hard cash) 
IBM PC or XT (or compatible) 
256K bytes of RAM 
2 Disk Drives—^Hard or Floppy 
Since X-shell can be run using floppy 
disk drives, you can save a bundle of 
money on your hardware. Hard disks 
are expensive. Floppies aren’t. It’s 
that simple. 


What You GetFor $225 

1. Complete Documentation, 
including: Installation, Tutorial and 
Reference Manuals. 

2. Complete X-shell Software Tools 
Package on two diskettes. 

3. A more efficient use of your 
computer time. 

4. More effective use of your PC. 

How To Order X-shell 


Software Requirements 

PC-DOS version 1.1 or 2.0 
Software Disk Emulator 
Since X-shell mns on PC-DOS, it 
supports existing PC-DOS software. 

Over 40 
Commands 

X-shell’s commands 
include: 


Get the software package that gives 
you Unix capability for an amazingly 
low $225. 

Call Standard DataCom, Inc. 
415-775-8882 with your Visa or 
MasterCard order, or for more 
information. 

Or ask your dealer. 


basename 

-strip extension from 

num 

-number lines 


file name 

pr 

-format files for printing 

cat 

-concatenate files 

print 

-pr directed to printer 

cd 

-change directory 

pwd 

-print working directory 

clear 

-clear monitor screen 

rm 

-remove files (delete) 

emp 

-compare files 

sh 

-shell (command 

comm 

-output lines common 


interpreter) 


to two files 

size 

-size of object code 

cp 

-copy files 

sort 

-sort numerically or 

cpio 

-file backup/archival 


alphabetically 

date 

-get or set date and time 

sum 

-checksum file 

echo 

-echo arguments to stdout 

tail 

-output last lines of file 

expand 

-expand tabs into spaces 

tee 

-pipe fitting 

expr 

-string and arithmetic 

test 

-test file's or string's 


evaluation 


characteristics 

false 

-do nothing, 

time 

-determine time to execute 


unsuccessfully 


a command 

find 

-produce list of selected 

tr 

-translate or delete 


files 


characters 

grep 

-search files for specified 

true 

-do nothing, 


pattern 


successfully 

hd 

-hex file dumper 

unexpand 

-replace spaces with tabs 

head 

-output 1st lines of file 

uniq 

-remove duplicate lines 

is 

-sorted directory list 

wc 

-count chars, words 

more 

-copy files to display 


and lines 

mv 

-movefiles (rename) 

words 

-output file 1 word per line 


Dealer Inquiries Invited 


Standard 

DataCom^ 





Ask us about X.25 


Standard DataCom, Inc., 

1550 California Street #6195, 
San Francisco, CA 94109 


CIRCLE NO. 299 ON READER SERVICE CARD 







Macros 


Listing 8 MLBL, MALTLB, and 
MJMP Macros 

MLBL MACRO Pl.CTl.CTZ 
&P1&CT1&CT2: 

ENDM 


MALTLB MACRO P1,P2,P3 
IFDEF iPl&P2 
MLBL P3,P2 
ELSE 

MLBL P1,P2 
ENOIF 
ENOM 


MJMP MACRO P1,P2,CT1,CT2,P3,CT3 
IFNB <P3> 

&P3&CT3: J4P1 4P2iCTl&CT2 
ELSE 

J&Pl &P2&CTUCT2 

ENOIF 

ENDM 


Listing 9 MJMPN Macro 

MJMPN MACRO PI,P2,CT1,CT2,P3,CT3 
IFIDN <P1>,<E> 

MJMP NE,P2,CT1,CT2,P3.CT3 
ELSE 

IFIDN <P1>,<Z> 

MJMP NZ,-P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<NE> 

MJMP E,P2,CT1,CT2,P3,CT^ 

ELSE 

IFIDN <P1>,<NZ> 

MJMP Z,P2.CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<BE> 

MJMP NBE,P2,CT1,CT2.P3,CT3 
ELSE 

IFIDN <P1>,<NA> 

MJMP A,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<NBE> 

MJMP BE,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<A> 

MJMP NA,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<AE> 

MJMP NAE,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<NB> 

MJMP B,P2,CTl,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<NAE> 

MJMP AE,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<B> 

MJMP NB,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<G> 

MJMP NG,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<NLE> 

MJMP LE,P2,CT1.CT2.P3,CT3 
ELSE 

IFIDN <P1>,<N6> 

MJMP G,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<LE> 

MJMP NLE,P2,CT1,CT2,P3,CT3 
ELSE 

IFIDN <P1>,<GE> 

MJMP NGE,P2,CT1,CT2,P3,CT3 
ELSE 


IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

IFIDN 

MJMP 

ELSE 

MJMP 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENaiF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDIF 

ENDM 


<P1>,<NL> 

L,P2,CT1,CT2,P3,CT3 

<P1>,<NGE> 

GE,P2,CT1,CT2,P3,CT3 

<P1>,<L> 

NL,P2,CT1,CT2,P3,CT3 

<P1>,<0> 

NO, P2,CT1,CT2,P3,CT3 
<PI>,<NO> 

O, P2,CT1.CT2,P3,CT3 
<P1>,<NS> 

S,P2,CT1,CT2,P3,CT3 

<P1>,<S> 

NS,P2,CT1,CT2,P3,CT3 

<P1>,<NP> 

P, P2,CT1,CT2,P3,CT3 
<P1>,<P> 

NP, P2,CT1,CT2,P3,CT3 
<Pl>,<PO> 

PE,P2.CT1,CT2,P3,CT3 

<P1>,<PE> 

PO,P2,CTl,CT2,P3,CT3 

<P1>,<NC> 

C,P2,CT1,CT2,P3,CT3 

<P1>,<C> 

NC,P2,CTl,CT2,P3,CT3 

MP,?BADOP,CTl 


166 


PC Tech Journal 








No Head is Better 
than One! 



Bubble Storage for the PC and PC XT. 


Bubble memory combines the 
best features of disk and solid state 
memory with extreme reliability. 
Unlike a floppy disk, it's entirely solid 
state with no moving parts. This 
makes it impervious to dust, dirt, 
fumes, and vibration. And, unlike 
normal memory, it doesn't lose data 
when the power goes off. 

Now you can enjoy all the 
advantages of bubble memory 
combined with thefamous Pure Data 
quality and reliability for your 
IBM PC or XT. 


• PDIB-128 provides 128 KBytes in one 
slot 

• PDIB-384 provides 384 KBytes in one 
slot 

• Not affected by power failure 

• Faster than a floppy disk 

• Extremely reliable 

• Standard DOS 2.0 disk-type device 

• Compatible with all DOS software 

• No patching of any system files 

• Password option for computer 
and/or bubble 

• Password cannot be bypassed by 
software 


• Comprehensive diagnostics and other 
utilities 

• Fully illustrated installation and 
operation manual 

• Technical support hot-line 

• Guaranteed 48 hour service 

• Bubble uses 2 I/O addresses and no 
memory space 

• Interrupts are supported but not 
required 

• DMA is supported but not required 

• On-board EPROM socket 

• Pure Data quality and reliability 

• No moving parts 




PDIB-384 


Pure 
Data Ltd 

860 Denison Street, 

Markham. Ontario. Canada L3R 4H1 

a! (416) 475-2424 2(416)498- 


PDIB-128 


1616 


Highland Computer Corporation, Keysoft International, 
Computerland, Computer Innovations, Compugroup, 
ECOSEA Technologies and others. 


108, 


Pure Data products are available through. 

1335 Valwood Parkway, Suite 
WllllPU^ Carrollton.Texas 75006 
DATA SYSTEMS Telephone (214) 620-8000 
P.O. Box 815155, Dallas, Texas 75381 


IBM is a registered trademark of International Business Machines Corporation, 


CIRCLE NO. 190 ON READER SERVICE CARD 








































CIRCLE NO. 204 ON READER SERVICE CARD 


9 TimCK IlFE 

cmmiouER 

New 1/2" Tape 
/ontrolier for the IBM-PC 

TC-PC is a high performance tape 
controller for the IBM-PC with these 
important features: 

• Capable of reading and writing 
industry standard 1/2" tape 

• Comprehensive software tools 
supplied 

• 8 bit parallel recording with parity 
and read-after-write verification of 
data 

• Compatible with most nine track 
formatted tape drives 

• Operates with tape drive speeds up 
to 120 inches per second; allows 
data transfer rates of up to 192,000 
bytes per second 

• Economically priced at $880 
For more information on the TC-PC, 
call or write today. 

Dealer/Distributor inquiries invited. 

OVERLAND DATA, IND. 

5644 Kearny Mesa Rd., Suite A 
San Diego, CA 92111 
Jiel. (619) 571-5555 


Diskette Exchange Software 


Access IBM data processing equip¬ 
ment through the 8" diskette and 
avoid the problems of serial com¬ 
munication. 

By adding an 8" drive to your PC 
and using our REFORMATTER® 
Conversion Software, you can ex¬ 
change diskettes with IBM’s 3741, 
3742, 3747, 5110/20, Series 1, System 
3/32/34/36/38/360/370 and 43xx and 
non IBM machines that read and write 
the IBM 3740 diskette. 

Available under PC-DOS or 
CP/M-86 at $350 from MicroTech 
Exports, 467 Hamilton Avenue, Palo 
Alto, CA 94301. Tel: 415-324-9114 
TWX: 910-370-7457: MUH-ALTOS. 


TM 


Scroll & Recall 

Screen and Keyboard Enhancement 

for the IBM - PC, XT and Compatibles 

Allows you to conveniently scroll back 
through data that has gone off the top of 
your display screen. 

' Allows you to easily recall and edit your 
previously entered DOS commands and 
data lines. 

Very easy to use, fully documented. Com¬ 
patible with all versions of DOS, mono¬ 
chrome & graphic displays. 


$69 - Visa, M/C, Check, COD, POs 
Phone orders accepted 

Make Your Work Easier! 


To Order or to Receive Additional 
Information, Write or Call: 

Opt-Tech Data Processing 

P.O. Box 2167 • Humble, Texas 77347 
(713) 454-7428 
Dealer Inquiries Welcome 

g 

CIRCLE NO. 196 ON READER SERVICE CARD 


IMPROVE YOUR PC MEMORY 


Now you can organize your copies of 

PC TECHlOURNAL _ 

Now youi magazines can be a handsome addition to your decor, 
well organized, and easy to find, thanks to these durable li¬ 
brary-quality cases or binders. They’re made of luxury-look 
leatherette over high-quality binder board. And both styles are 
custom-designed for this or any other magazine you save, with 
size, color and imprint selected by the publisher. FREE transfer 
foil included for marking dates and volumes. 



Magazine binders 


holds youi issues on 
individual snap-in rods, 
combining them into 
one volume. $7.95 each; 

3 for $22.50:6 for $42.95. 
Mixed titles OK for quan¬ 
tity prices 


Open-back cases 



store your issues for individ¬ 
ual reference. $6.95 each; 3 
for $19.75; 6 for $37.50. Mixed 
titles OK for cjuantity prices. 


IT 


For faster service, 

CALL TOLL-FREE 800-526-0790 

(In N] only 201-540-0445) 


PC TECH JOURNAL 

P.O. Box 5120, Philadelphia, PA 19141 

Please send: □ Cases □ Binders 

TITLE QUANTITY 

PC Tech Journal _ 

Other:___ 


■q 


□ PAYMENT ENCLOSED $_‘Add 

$1.00 per order for postage and handling. Out¬ 
side USA add $2.50 per unit ordered; send US 
funds only. 

□ CHARGE (Minimum $10): 

□ American Express □ MasterCard 

□ Visa 


Card No_ 

Signature_ 

Print Name- 

Address_ 

City_ 


-Exp. Date- 


State/Zip_ 

I_ *Residents of PA add 6% sales tax. I 


CIRCLE NO. 185 ON READER SERVICE CARD 




































Considering Tape 
For Backup Storage? 



There was a time when tape was the way to store backup 
data from your hard disk. It was fine for archives, but not 
when you wanted your data live and on-line. Today’s busi¬ 
ness pharaoh can have his data on-line and backups, 
too—with 5 or 10 megabyte removable cartridge hard disk 
systems from Micro-Design. 

Single-function tape backup units can’t come close to 
matching the versatility and cost-effectiveness of hard disk 
cartridges: you get backup capabilities PLUS the benefit of 
having another full 5 or 10 megabytes of on-line data 
access. 


Unlimited Expansion, no more erasing old data to 
increase space on your hard disk. Fact is, there’s no limit 
to the amount of off-line storage you can add. 

Our DATA Series 5 and 10 megabyte cartridge hard disks 
are external drives available in removable only, or paired 
with 10, 20. or 33 megabyte fixed drives. Our SQ Series 
features 5 megabyte cartridge drives, in matching exter¬ 
nal cases or ready for internal installation. All are 100% com¬ 
patible with the IBM-PC, XT, and work-alikes, with no 
software modifications needed. You can even boot from 
the hard disk. 


Use hard disk cartridges the same way you use a floppy 
disk system. Just switch them out as needed—one car¬ 
tridge for wordprocessing, another for accounting, and an¬ 
other for backup storage. Add additional cartridges when¬ 
ever you like. 


Don’t let single-function hard disk and tape units send your 
asp up the Nile. Ask your local computer dealer about 
Micro-Design’s versatile hard disk cartridge units. Or. call 
us for details on our full product line and ordering informa¬ 
tion. Dealer inquiries invited. 


We’ve got a complete line of mass storage 
devices, including floppy drives. Prices start as 
low as $1549 fora 20 megabyte fixed hard disk 
drive. Call for our FREE catalog today! 


One year warranty. Network compatible. Backup utility software included 
with 2 drive systems. 

Micro-Design 

Making The Most of Your Micro. 

CIRCLE NO. 134 ON READER SERVICE CARD 

Call Toll FREE 1-800-531-5002. 
In Texas, call 512-441-7890. 

6301 B Manchaca Rd.. Austin. TX 78745 



Fast. Cartridges run as fast, or faster, than 
fixed hard disk drives. A 5 mega¬ 
byte backup takes only a few 
minutes, using Micro-Design’s 
backup utility software. 
Switching out cartridges 
takes just a few seconds. 


Convenient and 
Secure, it’s easy to 
lock-up sensitive files 
—Just remove the car¬ 
tridge and put it somewhere safe. If you share a computer 
with others, everyone can have their own cartridge. Or, have 
a home cartridge and a business cartridge for use with your 
portable computer. 



IBM® International Business Machines. 



Introducing the new 
United they stand. 




Programs in IBM s Assistant 
Series are like actors in a play. Alone, 
each gives an outstanding performance. 
Together, they’ve been directed to act well as 
a troupe. (In the software world, this interaction 

is called “integration.”) 
Just as actors can easily perform 
on different stages, these programs can easily 
work on different IBM personal computers — 
from PQ'r to larger systems like PC/XT. 

How integrated software works. 


Want to get your facts and figures in order? Start with 
IBM Filing Assistant. Then, to print the facts in tabular form, 
add IBM Reporting Assistant. To write about what you’ve 
been working on (and make sure the spelling’s accurate), use 
IBM Writing Assistant—the word processing program. Want to 
put a chart in the middle of your text? Use IBM Graphing Assistant. 
It takes data directly from IBM Filing Assistant to turn numbers 
into pictures. When it’s time to think ahead with schedules and 
forecasts—get IBM Planning Assistant,* the spreadsheet program. 

The finishing touch? IBM Assistant Solutions. They 


Little Tramp character licensed by Bubbles Inc. 
* Available early next year. 

Prices apply at IBM Product Centers 


s.a. 





IBM Assistant Series. 
Divided they stand. 



make using IBM Filing Assistant 
even easier. To.help you with record 
keeping, several predefined, often-used 
forms are included in each 
Solutions package. 


Learn one, learn them all. 

IBM’s Assistant Series works hard for you. 

But the programs aren’t hard to work. Many 
of the menus, commands and function keys are the 
same. So once you’ve learned one program, you’re well on 
your way to mastering the rest. 

They’re not hard to buy, either. Pick what 
you want tvhen you want. Each program is less than $150.** 

There's a demo in store. 


We’ve shown you how affordable the new IBM Assistant Series is. 
But we can’t show you how easy. Your dealer can. Simply ask for a 
demonstration. For the authorized IBM Personal Computer dealer 
or IBM Product Center near you, call 800-447-4700. , 

In Alaska or Hawaii, 800-447-0890. "S* » 


CIRCLE NO. 152 ON READER SERVICE CARD 


Personal Computer Software 
















^ 5 -.^E'SS 


ro rrt 

f'Msr'^'"' ^^^fosr!, , 


';f?yrv-;': 


^ 1 ^ 






■'-/V 




LANSIGKS. 
ALL ON ONE PAGE! 


Ojg, 


Here’s documented 
proof that full- 
function word-and- 
graphics processing 
is practical at last. 
What you see is what 
you get: text, charts and 
quality graphics, easily 
produced and merged on 
the IBM PC or XT, then 
output together. Concur¬ 
rent rasterization lets your 
printer turn out highest- 
resolution results while you 
turn the computer to other 
tasks. 


Produce your own proof: 
call to arrange for a demon¬ 
stration today. 
1 - 800 - 547-4000 




CONCEPT 
TECHNOLOGIES: 
THE DOCUMENT 
PROCESSORS 


‘".O'! ^‘STBb 


CIRCLE NO. 120 ON READER SERVICE CARD 


VN 




















ASSEMBLERS 

WITHOUT 

LCERS 





macro techniques 
for ASM-86 


M achine-language program¬ 
ming is often a painful chore 
for even the most experienced pro¬ 
grammers. Assemblers are noto¬ 
riously tricky, unforgiving beasts 
that embody all the most frustrating 
characteristics of dealing with com¬ 
puters. However, higher-level lan¬ 
guages often fail to give the user 
access to the full power of the ma¬ 
chine, and they produce less-than- 
optimum code, costing the user lots 
of time and/or making the program 
much larger than strictly necessary. 

Sometimes the efficiency and 
total control of assemblers is re¬ 
quired. One way to get that control 
on the IBM PC without descending 
to the masochistic depths plumbed 
by hard-core assembly hackers is 
with ASM-86's macro feature. 


the language you want to speak 
without introducing the inefficien¬ 
cies of a compiler or interpreter. 
Unlike higher-level languages, ma¬ 
cros won't directly help you reduce 
the bug vulnerability of your pro¬ 
grams, but they can help you reuse 
debugged instruction sequences. 

The macro features of ASM-86 
are documented in chapter 5 of the 
Macro Assembler manual, on pages 
5-48 to 5-69; conditional pseudo-ops 
are documented on pages 5-44 to 
5-48. The ASM-86 manual is not a 
masterpiece of clarity overall, and 
the sections on pseudo-ops and ma¬ 
cros are particularly obscure. By the 
time you've read this article, 
though, you'll be able to make the 
assembler do wonders. Let's start 


Eric S. Raymond 


Shorthand 

A macro is a way of replacing one 
piece of text with another. With 
macros you can invent a shorthand 
that brings your assembler closer to 


Eric Raymond is a software designer 
working on UNIX applications for Rabbit 
Software of Malvern, PA. His background is 
in artificial intelligence research, language 
design, and software engineering tech¬ 
niques. He is writing a book on portability 
under UNIX. He owns a PC with a very 
low serial number. 


September i984 


173 












ASM-86 



For your IBM PC or compatible 
574" FULL AND HALF 
HEIGHT DISK DRIVES 
TANDON TM 100-2 
TANDON TM 101-4 
CONTROL DATA 9409 
TANDON 50-2 
CONTROL DATA 9428 
OUME 142-A 
TEAC 55B 
TEAC 55F 
AMDEK AMDISK-V 


MONITORS 


AMDEK VIDEO 310-A 
PGS HX-12 
PGS SR-12 


I HARD DISK SUB^STEMS 


r INTERFACE 
10. 15. 21 & 33MB 
MAYNARD 
WS1. 2, & 3 


DISK DRIVE CONTROLLERS 1 



MAYNARD 

All options available. 

FDC (5V4") 

FDC (8") 

MAYNARD 

Sandstar Series 

Modular Controller Cards . 


1 SOF*f^RE UTiLITiES 

HBHHHHI ' 

TALL TREE 


J FORMAT-2. WINDRIVE. 


JETDRIVE . 

Each $40 

1 EXPANSION BOAFIDS 



AST RESEARCH 

All options available. 

Expandable memory. 

SIX PAK PLUS (64K) 

MEGA PLUS II (64K) 

I/O PLUS II 
QUADRAM 

All options available. Expandable memory. 
QUADBOARD 
EXPANDED QUADBOARD 
QUADBOARD II 


COLOR/GRAPHICS CARDS V7 ■ 
$250 


HERCULES 
PARADISE SYSTEMS 
AST MONOGRAPH PLUS 


Hours: 8 AM - 5 PM Mon.-Fri. 

Toll Free 1-800-632-8515 
California 1-714-632-8512 

TERMS; Prepayment, COD, Visa and MasterCard 
accepted. Add 2% shipping and handling on all orders. 
Add 3% surcharge for Visa and MasterCard. 

Prices subject to change without notice. 20% re¬ 
stocking charge for all returned items. 



with an example of what can be 
done using macros. 

In 8088 machine language one 
instruction can move data from reg¬ 
ister to register, or from memory to 
register, or from register to memory, 
but not directly from memory to 
memory. If you've gotten tired of 
coding things like 

MOV AX, SOURCEWORD 
MOV DESTINATION, AX 

when what you want is 

MOV DESTINATION, 
SOURCEWORD 

then you're ready for a macro. Put 
figure 1 in front of your program. 
This tells the assembler to substi¬ 
tute the lines between MACRO and 
ENDM anywhere it sees MOVE in 
the program. D and S are like func¬ 
tion arguments in a higher-level 
languages: they tell ASM-86 where 
to substitute the tokens it sees on 
the line after MOVE. Note, by the 
way, the use of semicolons to start 
comments that shouldn't be in¬ 
cluded in the expansion. Macros, 
like assembler code, should be 
heavily commented for readability. 


Then you can write 

ADD ALPHA, 2 ;ALPHA is a 
memory location 
MOVE SCRATCH, ALPHA ;So is 
SCRATCH 
AND CX, SCRATCH 

and the assembler will see: 

ADD ALPHA, 2 
MOV AX, ALPHA 
MOV SCRATCH, AX 
AND CX, SCRATCH 

You can now view MOVE as an 
extra assembler instruction, but 
you're in trouble if you use it some¬ 
where that destroys an important 
AX value. This illustrates the major 
pitfall of macros: they can hide 
nasty side effects. One way to fix 
this is found in figure 2. Note that 
using a macro for an instruction se¬ 
quence doesn't generate any less 
code than writing the instructions 
out by hand; it just saves time and 
may make the program more read¬ 
able. ASM-86 expands all macros 
during pass 1. 

MOVE still has a problem. If ei¬ 
ther D or S are registers, then four 
instructions have been generated 


PC Tech Journal 


CIRCLE NO. 123 ON READER SERVICE CARD 



















VvX^o'm c^°?\e cO'^„aO^- 

Xoeo°'i:i,<:iV 


5TCO^^oOV'®'^ 








25 Pack 
Complete* 



Single Sided 
Double Density 


Soft sector 5 V 4 " flexible diskettes 



Double Sided 
Double Density 


*Complete with hub reinforcing rings, 
Tyvek sleeves, color coded user 
labels, and write protect tabs. 

Quali^ you expect 
at a price you don’t. 

Proven quality at a great price. BECK offers 
you a full satisfaction money-back guaran¬ 
tee - you can’t lose! If you like the quality of 
3M, Dysan, Verbatim, et al, you’ll like BECK. 

• Satisfaction, Money-Back Guarantee 

• 100% Certified, 100% Error-Free 

• Full 7-Year Warranty 

• Tested and Retested 21 Times to 42 Rigid 
Specifications 

• Meets or Exceeds ANSI Standards 

For IBM, Apple, TRS, and 97% of popular 
computers. 

Order Toll Free 1-800-232-5634. 
Available in 25-Pack only plus freight. 
Bulk product inquiries welcome. 

COD’S CASH ONLY 
Corp. Accts Welcome 

Order Now Toll Free 
Door to Door in 48 hrs. 

(In New Hampshire call 924-3821) 


ASM-86 


ragment ■ 


MOVE MACRO ■; 
- ■ isREG 
ISREG ■: 
IF 

MOV • 

. . ELSE ■ ■■ 

■_ ' ■ PUSH . 

MOV 

■ V.' MOV 

■ V ■ POP 
/ EN0IF-; 
ENDH - 


o,s 

vDR.D 

SR,S 

(DR OR SR) 
D.S 

■!:AX 

. AX,0 
S.AX 
AX 


;Anything-to-anything move 

;0R<-0,1 as D is/is not a register 

jDS^-O,! as S is/is not a register 

;If 0 or S is a register 

;do a MOV 

;else 

; save,AX 

;use it as scratch pad 
;finish the move ' . 

;restore AX 

;end of if .;.■ ■■ 

;End of MOVE 



. . ■ 




MACRO'-'' RES.ARG-^S'iRES <- 0 or I as ARG is/not a register 

RES =0 ;;Start off assuming it's not 

IRP . X, <AH,8H,CH,DH,AL,8L.eL,0L.AX,BX,CX.0X,SI,0I,8P,SP> 




- ■ IFIDN <X>,ARG> 

;;If it's in the list ... 


RES -s 

;;return 1 i'-;. ' " 


ENOIF ■ 

■ . ;;End of test ■ 


■ ENDM ■ 

^ ;;End of IRP ■ 


^ ENDM 

_;;End of ISREG 


1 Figure 6: CASE Macro 


CASE MACRO KEY, VALS, LABELS 
. = 0 

X.VALS . 
= X+1 

L,X, LABELS 
y-'; V.X,VALUES 
KEY.v 
I 


X 

IRP 

X 

NTH 
NTH ■ 
CMP 
JZ 

ENOH 
■ ENDM 


;CASE statement for assembler ■ 

;Initialize value counter 
;Loop through key-values list 
;counting from 1 to its length. 
;Get the nth labeV to L 
;Get the nth label to V - 
jGenerate code to see if KEY^V 
;dnd jump to L if true 
; then exit the loop 
; End of CASE 


.a-ti 


Figure 7: INTFUN Macro 


m. 


■function inkey: 
INKEY PROC 

IHTFUN 
TEST 
V Vl ■ 'JNZ ■ 

; v'.'' ADD ■ 
XCHG . 
NORMAL: RET ' 
INKEY ■ ENOP 


char'i““- the Pascal header 
FAR ;Return char in AL, no echo. 
16H,0 -jChar in AL, scan code in AH 
AL.AL ',Is character null? . 

NORMAL ;If not, we're done ■.■■■■ 
AH,BOH ;If so, meta the scan code ■ 
AL,AH and arrange to return it. 



where one would do. To fix this, 
conditionals must be used (see man¬ 
ual pages 5-44 and 5-45). The logic 
we want can be seen in figure 3. 

Fortunately, macros can call 
other macros. To test a macro to see 
if a parameter is a register, use the 
fragment in figure 4. 

To write ISREG (see figure 5), 
introduce the IRP operator, which 
permits you to loop through a list of 
arguments. This list is bounded by 
angle brackets and treated like a sin¬ 
gle argument; theO act like 
quotes. IRP also requires a dummy- 
variable argument to hold the list 


member it's currently looking at. 

I use X. Modularizing code into 
small functional pieces pays off in 
ease-of-maintenance and reusability. 
ISREG and MOVE can now be put 
in a macro utilities file (INCLUDEd 
when needed), and both of these 
macros can also be reused as build¬ 
ing blocks for other macros. 

It should be obvious by now 
that ASM-86 macro is a full pro¬ 
gramming language; it can express 
conditionals and loops. Consider the 
CASE macro in figure 6. It depends, 
of course, on NTH, which is left as 
an exercise for the reader (hint: look 


CIRCLE NO. 193 ON READER SERVICE CARD 


PC Tech Journal 


























Complete, High Precision, 
Low Speed Data Acquisition 
and Control System, 



FEATURING: 


4 Analog Input Channels with OverVoltage Protection 
to 120 Volts rms 

4 Analog Input 30 dB (60Hz) Switchable Filters 

2 Switch Selectable RTD Interfaces 

2 Precision Adjustable Voltage References 

2 Precision ImA Constant Current Sources 

2-3-4 Wire Bridge Operation 

Battery Backed-Up Clock/Calendar 

External Interrupt Capabilities 

16 Channels Per Second Throughput 

Easy to Understand Instruction Manual With Practical 

Examples 

IBM Color Adapter Board Required 


One YEAR WARRANTY 
SOFTWARE INCLUDED 

Data Acquisition and Control 
* Graphics-plotting and storing graphs 
Transducer Linearization 
CRT-Assisted board Calibration/Set-Up 
Procedures 
EASY TO USE 

1 CALL Statement accesses all Analog and Digital I/O 
Board plugs directly into the I.B.M. PC 
12 Bits of Digital I/O 
12 Bit resolution of Analog I/O 


ACCESSORIES AVAILABLE 

yre • Analog Output D/As (12 Bit Resolution) 

• Instrumentation Amplifiers for Switch Selectable 

able Analog Input Gains of lO, lOO, lOOO 

(extends resolution to 0.5 Microvolt per bit) 
cle • OPTO-22 Type Modules, Cables, Connectors 

• 6-Inch RTD for Temperature Measurements 


Screw Terminal Input/Output Board With Enclosure 
(cable extra) 

Solid State I/O Module Board With Enclosure (cable 
extra) 

Form C Relay Output Board With Enclosure (cable 
extra) 


The Price, 





CIRCLE NO. 269 ON READER SERVICE CARD 
IBM Personal Computer Is a I 

registered Trademark of IBM 



Also 

Accepting 


254 Tosco Drive, Stoughton, MA 02072 


(617) 344-1990 























GET “C”APPLICA TIONS OFF TO A FL YING START 

WITH ^ 

^ C-SORT ' 


C-TREE" 

RECORD MANAGEMENT 
SUBSYSTEM 

• Advanced B+ Tree Structure 

• Very Fast And Efficient 

• Unlimited # Of Keys 

• Keys May Be Duplicate, LIFO/ 
FIFO, Modifiable 

• Record Locking Calls 

• Random And Sequential Access 

• Utilities To Add/Delete Keys 
And Fields, Rebuild Files 

• Error Processing Interface 





SORVSELECT! MERGE 
SUBSYSTEM 

' Advanced Quick/Toumament 
Combination Sort 

Sort C-Tree Or Sequential Files 

Automatically Uses All 
Available Memory, And Merges 
On Disk 

Sorts On Up To 50 Fields Or 
Partial Fields; Unlimited 
Number Of Selection Criteria 

Creates Tag (Index) Sorting File, 
Leaves Original File Intact 


Stores Data Dictionary In File ordering information 


SINGLE UNIT OBJECT LICENSE 
$99 per program plus shipping. 

Format SVa Disk MS-DOS 
Compatible Linkable 8086-file 
format modules for Lattice-C or 
Microsoft-C Compilers, others 
soon. Complete documentation. 


AccttData Software’^** 
Dept. T-9 
P.O. Box 6502 
Austin, Texas 78762 


SOURCE CODE LICENSE 
$249 per program plus shipping 
(single unit). “C” Source Code is 
well documented. Allows modification 
to suit application. Credit allowed 
for object license. 

MULTIPLE COPY LICENSE 
Multiple copies of object code 
or source code derivatives may 
be rtiade with this license at 
a very low unit cost. 

Telephone Orders Accepted 
Visa/Mastercard 

( 512 ) 476-8356 


CIRCLE NO. 157 ON READER SERVICE CARD 


Multi-tasking... 

Multi-user... 

MultiLink! 

MultiLink turns PC-DOS (or MS-DOS) into a multi-user, multi-tasking 
system without expensive hardware. If you have at least 96K of memory, 
MultiLink is all you need for concurrent processing. 

If you also have serial ports and appropriate terminals, you can station up to 8 
additional users running normal DOS applications. 

MultiLink permits task synchronization, prioritization, disk and file sharing, 
and other features geared to development of multi-user software. 

Also included is a full-featured bulletin board system allowing dial-in access 
which runs as an independent task. 

On the market since February of '83, MultiLink supports the IBM PC or XT 
running either PC-DOS 1.1 or 2.0, and will handle future releases as required. 
Also supported are the Columbia, Corona, and Eagle 1600 series, with others 
under development. 

Available now at $295. Evaluation version for the faint of heart. Visa, MC 
accepted. Dealer inquiries invited. 

THE SOFTWARE LINK, INC. 

6700 23-B ROSWELL RD. • ATLANTA. GA 30328 • 404/255-1254 



ASM-86 

at the IRP loop in ISREG again). If 
you have the correct answer, 

CASE AX, <1, 2, 3, 4>, <PROCA, 
PROCB, PROCC, PROCD> 

automatically generates a dispatch 
table based on the value of AX. 
Macros can enable you to turn your 
ASM-86 into something resembling 
a structured programming language. 
Once you've written something like 
CASE and verified that it expands 
correctly, you never have to hand 
code a dispatch table again. Further¬ 
more, when you reuse macros that 
you know have worked you can 
have more confidence in your code. 

Macro System for 
ASM Routines 

Macros don't provide the safety net 
a good compiler or interpreter does, 
so assembler-to-compiler interfacing 
is important. There are painless 
ways to use macros to get Microsoft 
Pascal, Lattice C, and other high-lev¬ 
el languages to talk to ASM-86. 
Generating the stereotyped code for 
assembler-to-compiler interfacing is 
what such macros do best. 

Listing 1 is a macro system that 
helps write ASM-86 routines that 
are automatically accessible to Pas¬ 
cal and C. Using this, you can ar¬ 
range for your service code to take 
any number of value, CONST, or 
VAR arguments, do anything with 
them, and then load VAR argu¬ 
ments back out. You can even ar¬ 
range for your code to return the 
value of any register through AX or 
the value on the carry-flag—all 
without hand-coding a single line of 
assembly language. 

Listing 1 can teach you ad¬ 
vanced macro techniques useful for 
assembler systems-level program¬ 
ming. Ancestors of these were used 
to generate assembler support for a 
screen I/O package that features 
multiple independently-scrolled 
windows; it is in production use in 
a successful communications pro¬ 
gram. The following examples of 
the macro system are working rou- 


178 


CIRCLE NO. 198 ON READER SERVICE CARD 


PC Tech Journal 









GRAPHICS 

MASTER" 


WHAT A PAIR ! 


Tecmar’s Graphics Master” & Lotus 1-2-3 


Graphics Master is the only board that creates 
both monochrome and color graphics for 
Lotus 1-2-3. 

You can also run IBM compatible software 
because Graphics Master emulates both the IBM 
Color Graphics Adapter and the Monochrome 
Adapter. 

We are pleased to announce that Graf-Talk^ and 
MetaWindow^ software take full advantage of 
Graphics Master’s high resolution graphics. 

the power behind the PC 


Graphics Master is the only board that will do all 
of the following with appropriate software: 

• High resolution color graphics - 

640 X 400, 16 colors 

• High resolution monochrome graphics - 

720 X 700 

• Run software for IBM Monochrome Adapter 

• Run software for IBM Color Graphics Adapter 



Tecmar Inc. 6225 Cochran Road Solon (Clevel 2 ind), Ohio 44139-3377 Phone:(216)349-0600 Telex: 466692 

1 Registered Trademark of the Lotus Development Corp. 2 Registered Trademark of the Redding Group Inc 3 Registered Trademark of the Metagraphics Corp. 


CIRCLE NO. 19.S ON READER SERVICE CARD 




ASlVi-86 


Figure 8: Screen-writing Procedure 


s^rocedure write_screen(char c-; byte att)p— — 

:•■■- ■ %0UT ■ WRITE^SCREEN Z ■ 
WRITE_$CREEN PROC FAR 

-.Write char with attribute & advance cursor, 
-.noticing screen boundaries. 

PROLOG <CHAR, ATTR> - . 

-.Make sure BH contains current display page number ' 
INTFUN lOH.lS 

MOV . . CL,AH ;Save the 

;screen width- 
;as well. '. ' 

Save CX away 
because cursor 
bounds get put 
in it. 

Restore screen ' 
width to CL 

-.Get the arguments 




■ j^4\ 


MOV DL.O 

CMP ■. ■ DH,24 • 

j ■ JNZ ' :■ :i 

;If we*re here, have to set cursor & scroll the 
-.window 1 1 ine up 


-.Else go to left column 


SSETNSCROLL: INTFUN 

MOV 

vNow do the scroll up 


10H,2 


■ At,I 


-.First, set cursor . :■ 
jWant to scroll l-,line up 


;Redd cursor position into DH, OL 


PUSH 


CX 


10H,3 


SSCROLL: 


SFUNCRET; 
SLFP: ■ 


MOV 
. MOV 
MOV 
■ MOV 
^M0V. 
I NT 


■ AH,6 ■ ■ 

DH,24 ■ ■-■.■■ ^.V :■■■■ ■ 

OL.CL ;Get the screen width 
. CX.O 

" 8H,07H ;Use normal blanks 
lOH ;Execute pending function 


EPILOG 

jif we're here, just need to bump row number 
SBUMPROW: ' INC ' OH ' ■ 

SSETNRET: MOV AH,2 

JMP SFUNCRET 

;Here‘s the carriage-return processing (with auto-line-feed). 


GETVAL 

AL.CHAR ;The character 

SCRP: ■ MOV 

DL.O 

■ ^Take cursor to ^ 

GETVAL 

BL.ATTR ;The attribute ■ 


’ ■ ^ 

-.left margin ■ ■■ 

handle special characters 

CMP . 


OH,24 ;Are we on last line? 

CMP 

AL.OAH ;A line feed? 

JNE 


SBUMPROW ;If no, bump row 

JE 

SLFP ;Must ignore them. 

JMP 


SSETNSCROLL ;else set cursor 

CMP 

■. AL.ODH - ;A carriage return? 



^ ■ ■-=,& scroll :■■■.■ 

JE 

: '/ scRp. ^--/ : . ■ - 

%0UT_ 




;Otherwise write the char normally 

PUSH CX ;Save the screen width 

MOV CX.l char only ; 

INTFUN 10H,9 ;Write char & attribute-: 

■ ■■■■:' ' pop; cx 

;Position the cursor for next char 
INC OL 

CMP 0L,CL ;Are we at EOL? 

SSETNRET -.If not, set cursor 


■ WRITE SCREEN 



;procedure read_cpos(dpage: sint; var i, j, ctop, cbot: ;sint) 
SYS’'" REA0_CP0S, lOH, 7, <BH, *DH, *DL, *CH, *CL> / > : 


tines taken from this video support 
package. Explanations of the mac¬ 
ros' functions will be given after¬ 
wards. 

Non-Echoing Keyboard 

Input (INTFUN) 

The return conventions of the INT 
16/ AH = 0 call that MS-DOS uses 
for keyboard input make life unnec¬ 
essarily difficult. Instead of mapping 
the function and special keys into 
the 128+ high half of the ASCII 
character set and returning a single 
byte in AL, it returns 0 in AL and a 
byte in AH; MS-DOS aids and abets 
this by requiring a second key read 
to detect the one keystroke. Macros 
can be used to give Pascal an IN¬ 
KEY function that acts rationally 
and serves as a real-world example 
of the use of the simplest of these 
macros, INTFUN (see figure 7). 

Writing to the Screen 
WITH A Highlight 
(PROLOG/EPILOG) 

Another poorly designed feature in 


the BIOS is found in the code for 
INT 1 OH / AH - 14 (WRITE_TTY), 
line 4694 of the BIOS figure in the 
Technical Reference manual (line 
4965 in the revised version). If this 
had read MOV AH, 9 WRITE_TTY 
would use BL as a screen highlight 
on the monochrome monitor as well 
as on the color monitor (see figure 
8). Note the use of "named" argu¬ 
ments and GETVAL; though this 
example doesn't show it, PROLOG 
also accepts register-name argu¬ 
ments that act in SYS below (see the 
figure comments for details). Also 
note that EPILOG need not be at the 
physical end of the function text, as 
long as all exits go through it. 

Reading the Cursor 
Position (SYS) 

As you can see in figure 9, SYS calls 
PROLOG and EPILOG to generate a 
call to interrupt lOH, AH = 7 sur¬ 
rounded by stack fetches and loads 
that bring the first argument of the 
call into BH and load the results 
(which live in the CX and DX pairs) 


out to Pascal VAR arguments. 

INTFUN is a simple straight- 
line macro for calling in-ROM BIOS 
functions. It's there mainly to be 
used by SYS, which is a specialized 
macro that uses PROLOG/EPILOG 
for getting at the ROM and DOS 
service routines. If you bracket an 
assembler service routine with PRO¬ 
LOG and EPILOG they'll generate 
the argument fetches and stores nec¬ 
essary to make it look like a Pascal 
procedure or function. 

Notice that the line EPILOG 
MACRO REG is inside the scope of 
the PROLOG macro definition. This 
is an example of a macro-defining 
macro. Each time PROLOG is ex¬ 
panded it redefines EPILOG. 

This is necessary because of an 
inconsistency in ASM-86. Angle- 
bracketed argument lists are treated 
like single arguments in macro 
headers, but they can't be passed to 
a symbol. The assignment 

REGLIST = <AX, BX, CX, DX> 

fails because a comma is defined to 


180 


PC Tech Journal 
















With A 


HARD DISK + Single Slot. 


Unleash your IBM-PC/XT with IDT's hard 
disks and SCSI technology. 

Innovative Data Technology is bringing unprecedented 
power and virtually unlimited expansion to IBM-PC/XT 
users. Our new SCSI (Small Computer Systems Interface) 
hard disk subsystems put massive storage capacity at your 
fingertips—from 11 to 126 MB in a single external drive. 

With the capacity of configuring up to 14 drives through the 
SCSI bus, that puts nearly two billion bytes of on-line 
storage at your disposal. 

Single slot expansion 

Unlike most PC add-ons, IDT's SCSI hard disk subsystems 
and other peripherals are connected through a single SCSI 
host adapter on your PC—no additional expansion slots or 
cards are necessary—future disks and other peripherals 
and additional PC hosts are simply daisy-chained into the 
SCSI bus. 

Multi-user capability 

IDT built the SCSI hard disk subsystem with multiple users 
in mind. One, two, or more IBM-PCs can access disk drives 
and other peripherals through the SCSI bus, allowing you 
to build a sophisticated system tailored exactly to your 
reguirements. 1 / 4 " STREAMING 

BACK-UP 

The options are yours tape subsystem 

With IDT's SCSI host adapter board, future 
expansion becomes a snap. Additional 
peripherals, including an extensive line of 
1/2-inch IBM-compatible magnetic tape 
transports, are available for immediate 
shipment from IDT. You simply don't 
have to wait or worry about eguipment 
compatibility with IDT components. 

Watch for 1984 announcements of 
streaming cartridge drives, printers, etc. 

Tomorrow's solution today 

IDT's SCSI host adapter and 
SCSI hard disk subsystems 
will answer your data 
storage and system design 
reguirements today. Contact 

IDT for complete system configuration information and 
details on other products. 

How to order: 

Using the chart to your right, you may order IDT hard disk 
subsystems and SCSI host adapters by calling: 

1-800-522-1500 Ext. 717 

FOR IMMEDIATE ORDERS ONLY 

Prices and availability subject to change without notice. No CODs. Send 
cashier's check or money order. All other checks will delay shipping three 
weeks. MasterCard and Visa accepted (include telephone number). Add 
$12.00 for handling and shipping UPS ground within the continental U.S. 

California residents add 6%. Approval needed on all returns. 0-10% 
restocking charge on all returned merchandise. 

For additional product or technical information please 
call or write: 


Successful and easy installation assured 

Supplied with each component are the reguired cables, 
complete software driver package and user language 
instructions. The user manual will have you guickly running 
and appreciating the many features of the subsystems, such 
as guick automatic boot load of the operating system from 
the IDT disk subsystem. 

Satisfaction guaranteed 

If not satisfied, the subsystems may be returned on approval 
from IDT within a 10-day period. All subsystems and 
components carry a six-month return-to-factory warranty on 
parts and labor. 


TO ADDITIONAL HOSTS 
OR PERIPHERALS 



IBM COMPATIBLE 
1/2" MAGNETIC 
TAPE SUBSYSTEM 


DISK 

SUBSYSTEM 


Solutions 

fOT^^MANi 

PBPY 


COMPONENT PRICING CHART 




Model No. 

Description 

Storage Capacity 

Price 

RD20irM 

Master Disk Subsystem 

11MB 

$2000.00 

RD 2023M 1 

Master Disk Subsystem! 

23MB : 

2550.00 

RD 2035M 

Master Disk Subsystem 

35MB 

2950.00 

!RD2047M ■ 

Master Disk Subsystem 

47MB 

3150.00 

RD 2r26M 

Master Disk Subsystem 

126MB 

6840.00 

RD 2011S 

Slave Disk Drive 

11MB 

1560.00 i 

RD 2023S 

Slave Disk Drive 

23 MB 

2130.00 

RD 2035S 

Slave Disk Drive 

35MB 

2530.00 

RD 2047S 

Slave Disk Drive 

47MB 

2730.00 

RD 2126S 

Slave Disk Drive 

126MB 

6290.00 . ’ 

RD 8111H/A 

IBM-PC/XT Host Adaptor 

510.00 

IDT 1/2" Magnetic Tape Subsystems 

Consult Factory 

IDT 1/4" Streaming Back-up Tape Subsystems 

Consult Factory 


Ordering 

Example: 


INNOVATIVE 

data on the right track 

TECHNOLOGY 

P.O. Box 178160 • 4060 Morena Blvd. • San Diego, CA 92117 
(619) 270-3990 • TWX: (910) 335-1610 

CIRCLE NO. 215 ON READER SERVICE CARD 


If your need is a 23MB Subsystem, your order 
would consist of the following components: 

1-RD 2023M @ $2550.00 + 1-RD 8111H/A @ 
$510.00 + Shipping & Handling @ $12.00 = 
A Total Order of $3072.00 + tax (if applicable) 

IBM is a trademark of International Business Machines Corp. 
































ASM-86 

end an angle-bracketed quote. This 
is documented, so it's a design error 
rather than a bug. It means that any 
time you want to pass one of these 
lists out of a macro you'll have to do 
so by defining another macro with 
the list expanded inside it. 

I call this trick lambda-passing 
after a similar technique used in the 
language LISP. Usually, as here, 
you'll define a dummy with a nice 
name that does nothing but call the 
real receiving macro (ENDF) with 
its arguments filled in. This lan¬ 
guage also needs an operator that re¬ 
places the symbol or expression fol¬ 
lowing it with its expansion or eval¬ 
uation. The percent sign does part 
of this, but the documentation on it 
is confusing; what it boils down to 
is that it can be used only on num¬ 
eric-valued expressions appearing as 
actual arguments to a macro call. 

PROLOG calls ACOUNT to 
count the number of each kind of 
argument the generated routine will 
have. It generates a frame pointer 
save (see below), then calls INARG 
on each argument to generate what¬ 
ever code is needed to access it, 
using GETVAL and the EPILOG 
needed to balance it. EPILOG calls 
OUTARG to generate code for each 
VAR argument (OUTARG in turn 
calls SETVAR). Next it checks to 
see if you wanted a function return; 
if so it uses MOV ACC to put it in 
the right place. Finally it generates 
a frame pointer restore and the ap¬ 
propriate RET instruction. 

GETVAL can be used directly 
to fetch, off the stack and to a regis¬ 
ter in mid-routine, arguments that 
PROLOG was not supposed to get. 
Note that it doesn't fetch CONST 
or VAR arguments, just their loca¬ 
tions. SETVAR can also be used di¬ 
rectly to store out VAR arguments. 
These macros use the %OUT pseu¬ 
do-op to report on what they're do¬ 
ing. This is necessary, because 
ASM-86 macro-expansion is fairly 
slow on the PC. This makes it easier 
to catch errors in calling sequence 
specifications. 


PC Tech Journal 







BufldABetterPC 





Universal Comm Adapter 


ABM Superboard 


With ABM's complete line of PC enhance¬ 
ment products, you can build a better PC. 

ABM Superboard™ provides zero to 384K 
bytes of RAM memory, serial port, parallel 
port, IBM or Apple compatible game port, 
and clock/calendar with battery backup 
and external alarm feature. ABM Superset 
utility software allows you to configure 
part of memory for print spooling, so you can 
continue computing while your printer is 
busy, and for RAM disk, which emulates a 
disk drive and dramatically increases your 
productivity. 

Omniboard™ provides up to two serial 
ports, parallel port, clock/calendar with 
battery backup, Apple compatible game 
port, and Superset utility software. 

MEM 512™ memory board provides 64K 
to 512K bytes of field-upgradeable RAM 


memory on a single board. ABM Superset 
utility software is included. 

Col-Mon™ ABM's color to monochrome 
adapter permits display of full text and 
graphics from the IBM PC color graphics 
board on the monochrome monitor. 

ICP Board™ Intelligent Communications 
Processor is the leading edge solution 
for remote PC to IBM mainframe communi¬ 
cations. Utilizing a Z80-B microprocessor 
with 64K bytes of RAM memory to run 3274/ 
3276/3278 emulation software, it elimi¬ 
nates the need for an IBM cluster controller, 
and maintains the host link during local 
PC processing. ICP cluster capability allows 
attachment of up to 12 more PC's, offering 
unparalleled cost advantages. 

Universal Comm Adapters ABM's dual 
channel comm adapters can support 
A5YNCH, BSC, SDLC, HDLC, X.25, and Other 


communications protocols. 3270 SNA/5DLC 
support for PS-5C2 is available from ABM. 

Warranty All of ABM's products are 
rigidly tested and burned in. This allows us 
to offer a complete one-year warranty 
at no additional charge. Check our features, 
our quality-then ask your PC dealer for 
Personality Series products from ABM Com¬ 
puter Systems. 

Dealer and OEM inquiries welcome. 

JBA 

ABM Computer Systems 

3 Whatney, Irvine, California 92714 
(714) 859-6531 TWX 292427 ABM UR 

Personality For Your PC 


CIRCLE NO. 273 ON READER SERVICE CARD 











HAm otm $a&$YSTEM 

•to OR 20 MEOABYTE CAPACITY 
•DOS 2.0 COMPATIBLE 
•SYSTEM INCLUDES DRIVE INSTALLED 
IN CABINET WITH POWER SUPPLY, 
INTERFACE CARD FOR INSTALLATION 
IN PC AND CONNECTING CABLES 
10 MB-$1995 20 MB-$2295 


BUS eXPANStON MODULE 


DESERT 

TECHNOLOGIES 


RO. BOX 41628 
TUCSON, AZ 85717 


♦ DOUBLES THE EXPANSION BOARD 
CAPACITY OF THE PC 

♦ INTERFACES TO PC THRU SIGNAL. CON- 
DITIONED CABLE ASSEMBLY WHICH 
OCCUPIES A SINGLE SLOT IN PC 

♦ SYSTEM INCLUDES CABINET WITH 6 
SLOT BACK PLANE AND 4 OUTPUT 
POWER SUPPLY, INTERFACE CARD 
AND CONNECTING CABLE - $645 


(602) 882-1741 


CIRCLE NO. 142 ON READER SERVICE CARD 



■nSu' 


CIRCLE NO. 130 ON READER SERVICE CARD 


P pOWEP 


ASM-86 

Speaking Other 
Languages 

These macros should be usable with 
many languages other than Pascal- 
86 with minor changes. In fact, 
there are only three aspects of an 
8088 compiler's argument-passing 
conventions that are likely to vary 
from this: stack argument order, the 
context saved during routines, and 
where return values are put. 

Pascal-86, BASIC, and many 
other compilers put arguments on 
the stack as they're evaluated (left- 
to-right) so that the last one on be¬ 
comes the first to be popped off. 

This is the major complicating in¬ 
fluence on the PASCAL.MAC code; 
in particular, it's the reason ARITY 
has to be computed before any argu¬ 
ment-passing code can be generated. 
Lattice C, on the other hand, pushes 
its arguments in reverse order. This 
allows them to be accessed in a 
more natural way (it also helps that 
C has only value arguments). The 
analog of PASCAL.MAC for Lattice 
C is thus simpler, and is left as an 
exercise for the reader. 

Most 8088 compilers require 
only BP to be preserved during sub¬ 
routine execution (the instruction 
set was designed in such a way that 
BP is the only reasonable choice for 
argument frame pointer). Thus the 
PUSH BP in PROLOG and POP BP 
in EPILOG should be sufficient. If a 
compiler you're using requires 
more, simply add PUSH and POP 
instructions adjacent to the ones 
already there in the macro. Almost 
all compilers use their hardware's 
accumulator (AL/AX on the 8088) 
to pass back return values. Only 
MOV ACC should need to be modi¬ 
fied if you run into an exception. 

Macros offer a practical way of 
automating the interface between 
compiled languages and assembly 
code. They enable you to keep your 
application logic in a development 
language while having maximum 
control of the machine. I 


184 


PC Tech Journal 




























Assemblers + Macros vs. Macro-assemblers 


The ASM-86 macro language is power¬ 
ful, but also clumsy and poorly de¬ 
signed in spots. Why isn't the design 
cleaner? The main reason is simple his¬ 
torical inertia. Most assemblers have 
been written by people such as hard¬ 
ware developers—people who are not 
primarily language designers and tend 
to be very conservative in their meth¬ 
ods. Their traditional way to write a 
macroassembler is to do the code gen¬ 
erators and symbol-table maintenance 
first, then graft a macro language on 
top of it or as a pre-processing stage. 
Most of the resulting macro languages 
have been afterthoughts thrown to¬ 


gether to support a particular narrow 
set of features (often one copied from 
a previous assembler). 

It's actually easier and better to 
build the macro language first. As¬ 
sembler op codes and many data pseu¬ 
do-ops can then become macros that 
take their operands as arguments and 
expand into calls to one of a small 
handful of machine-code generators, 
one for each instruction class. The re¬ 
maining pseudo-ops can "expand" to 
nothing, manipulating the symbol ta¬ 
ble as a side-effect.The macro expan¬ 
sion process supplies the entire control 
structure of the assembler's first pass, 


resulting in a tight, clean, and well-in¬ 
tegrated design. The macro features 
will become terse and effective, be¬ 
cause the assembler writer will be us¬ 
ing them all through the expansions. 

Many cross-assemblers (i.e., assem¬ 
blers that generate code for a different 
processor than the one they run on) 
are built this way, as are a few main¬ 
frame and minicomputer assemblers. 

As micro-based software took become 
more sophisticated this situation will 
probably change. 

— Eric Raymond 


Listing 1: PASCAL.MAC 

.XLIST 

. *********************************************************************** 

;PASCAL.MAC 

;(C){P)Copyr1ght 1983 by Eric S. Raymond 

; These macros are useful for generating ASM-86 routines that 

; do stack-based argument handling, and can thus be treated like 

; Pascal-86 or BASIC routines once declared in an interface or 

EXTERNed to. Note that they must be PUBLICed and live in a 
; SEGMENT PUBLIC PARA 'CODE' to be accessible to the linker. 

; These macros should work correctly with any compiler that 

; a) only requires BP to be saved during subroutine calls, and 

; b) pushes arguments left to right (last given is last pushed). 

;I) General service routines 

; To generate a routine with a given profile of value and VAR 

; args and a given service routine, write the following; 

;[name3 PROC 

; PROLOG <argl, argZ,...argn>, tr 

; [service code] 

EPILOG reg 
;[name] ENDP 

; If A stands for an accumulator name, argk may have the form 

; A -- argument k is a value argument to be moved to A 

; #A -- argument k is a CONST argument (input only) 

; *A -- argument k is a VAR argument (output only) 

; (?A -- argument k is a VAR argument (input and output) 

; For these four cases, PROLOG fetches argument k to A and EPILOG 

; automatically stores A to it (if it's VAR). 

; If argk has none of these forms, it is simply equated to k 

; in the assembler's symbol tables, and can be used with GETVAL, 

; GETVAR, and SETVAR to give the effect of named arguments. 

; If a register reg is specified, that register will be loaded 

; into AL or AX (depending on length) just before exit and Pascal 

; will see it as a return value. If reg is CY, AL will be loaded 

; with 1 or 0 as the carry flag is on or off just before exit. 

; Since the stack loads don't change the state of the flags, AL 

; may pass out a VAR argument as usual before this. 

; By default SI is used as a scratch register for locations of 

; VAR arguments. This will lose if a VAR or CONST argument occurs 

; after SI in the argument list. The optional second argument tr 

; of PROLOG may be used to specify another scratch register; it 

; may be SI, DI or BX and is passed to GETVAR and SETVAR. 

;II) GETVAL, GETVAR and SETVAR 

; The macros GETVAL reg, k and GETVAR reg, k will load a register 

; from the kth value or location argument respectively. The macro 

; SETVAR k, reg will store REG to the kth by-location argument. 

; GETVAR and SETVAR take an optional third argument which sets 

; the location scratch register as described above. 

;III) WITHl, WITH2 

; The macros WITHl and WITH2 allow any instruction that will take 


the appropriate addressing mode to be applied to two operands, 
one of which is a stacked argument represented by its name. For 
example: 

WITH2 CMP, AX, FOO 

expands to CMP AX, [BP+X*2] where X is the stack offset of the 
argument named by FOO. WITHl does this to its second argument, 
so WITHl CMP, FOO, AX would be equivalent to the above. 

IV) SYS function calls 

A macro has been included for generating interfaces to the 
PC's BIOS and DOS interrupt servers. With this macro, 

SYS name, int, func, <argl, arg2,... argn>, reg, tr 

generates source for a Pascal-accessible routine that executes 
PROLOG, does an INT (int) with (func) in AH, and then does 
EPILOG. Arguments in the bracketed list are loaded and returned 
as in PROLOG/EPILOG. Optional args reg and tr are as above. 

SYS will PUBLIC the generated function, though this won’t 
be obvious in an .XALL listing since PUBLIC generates no code. 


A********************************************************************** 

.XCREF 


INTFUN 

MACRO 

INTN, FUNCN 

;;Call a BIOS function 


MOV 

AH, FUNCN 

;; with given function number 


INT 

INTN 

;; and given interrupt 


ENDM 




ACOUNT 

MACRO 

ARG 

;;Counts arguments 


IRP 

REG, <AL,AH,BL,BH,CL,CH,DL,DH,AX,BX,CX,DX,SI,DI> 


IFIDN 

<ARG>, <REG> 


If it's a value argument 


INCT 

= INCT + 1 


bump the input argument count 


EXITM 



then exit the IRP 


ENDIF 



else continue list check 


IFIDN 

<ARG>, <#&REG> 


If it's a CONST argument 


INCT 

= INCT + 1 


bump the input argument count 


EXITM 



then exit the IRP 


ENDIF 



else continue list check 


IFIDN 

<ARG>, <*&REG> 


If it's an output-only VAR arg 


OUTCT 

= OUTCT + 1 


bump the output argument count 


EXITM 



then exit the IRP 


ENOIF 



else continue list check 


IFIDN 

<ARG>, <@&REG> 


If it's a VAR argument 


lOCT 

= lOCT + 1 


bump the input/output arg count 


EXITM 



then exit the IRP 


ENDIF 



else continue list check 


LACT 

= LACT + 1 


It's a named argument 


ENDM 



End of IRP 


ENDM 



End of ACOUNT 

GETVAL 

MACRO 

Z, N 

;; 

;Load Nth value arg to Z 


MOV 

Z, [BP+2*(ARITY- 

-N)+6] ; 

;Move parameter to register 


ENDM 



;End of GETVAL 

GETVAR 

MACRO 

Z, N, T 


;Load Z to Nth VAR argument 


IFB 

<T> 

; 

;If no transport reg specified 


September i984 


185 
















ASM-86 


MOV SI, CBP+2*(ARITY' 

-N)+6] ;; fetch parameter address 

MOV Z, [SI] 

;; and load to where it points 

ELSE 

;;Else transport register given 

MOV T, CBP+2*(ARITY-N)+6] ;; fetch parameter address 

MOV Z, [T] 

;; and load to where it points 

ENOM 

;;End of GETVAR 

INARG MACRO FML, K, TR 

;;Generate stack fetch for arg K 

;;First check the null case 


IFB <FML> 

;;If blank. 

%0UT K : skipped 

;; note: stack slot is skipped 

EXITM 

;; and exit INARG 

ENOIF 

;;End of blank check 

;;Now look for a matching register argument 

ISR = 0 

;;No register match yet found 

IRP REG, <AL,AH,BL,BH,CL,CH,OL.DH,AX,BX,CX,OX.SI,OI.SP> 

;-.Handle value arguments 


IFIDN <FML>, <REG> 

;;If it's a value argument 

ISR = 1 

;; note that it matched 

GETVAL REG, K 

;; fetch it 

XOUT K : VAL REG 

;; and show it in the listing 

EXITM 

;; then exit the IRP 

ENOIF 

;; else continue list check 

;;Handle CONST arguments 


IFION <FML>, <#&REG> 

;;If it's CONST 

ISR = 1 

;; note that it matched 

GETVAR REG, K, TR 

;; fetch Kth location arg 

XOUT K : CONST REG 

;; and show it in the listing 

EXITM 

;; then exit the IRP 

ENOIF 

;; else continue list check 

;;Handle two-way VAR arguments 


IFIDN <FML>, <@4REG> 

;;If it's VAR 

ISR = 1 

;; note that it matched 

GETVAR REG, K, TR 

;; fetch Kth location arg 

XOUT K : VAR REG 

;; and show it in the listing 

EXITM 

;; then exit the IRP 

ENOIF 

;; else continue list check 

;;Handle output VAR arguments 


IFION <FML>, <*&REG> 

;;If it's an output-only arg 

ISR = 1 

;; note that it matched 

XOUT K : VAR REG (out 

only) ;; show it in the listing 

EXITM 

;; then exit the IRP 

ENOIF 

;; else continue list check 

ENOM 

;;End of IRP 

;;If no matching register arg, equate name to arg number 

IFE ISR 

;;No register argument match 

FML = K 

;-.Equate name to arg value 

XOUT K : FML = K 

;;Report the action 

ENOIF 

;;End of symbol check 

ENOM 

;;End of INARG 

PROLOG MACRO ARGS, TR 

-.Process input arguments 

.XCREF ; 

;Oon't need generated code to be CREFed 

ARITY = 0 ; 

-.Start with 0 total arguments 

INCT = 0 

-.Start with 0 input args 

OUTCT = 0 

-.Start with 0 output args 

lOCT = 0 ; 

jStart with 0 input/output args 

LACT = 0 

-.Start with 0 named arguments 

IRP X, <ARGS> ; 

;Count the flavors of arguments 

ARITY = ARITY + 1 

-, ARITY counts all four kinds 

ACOUNT X ; 

; Now count the individual kinds 

ENOM 

;End of argument count loop 

PUSH BP 

-.Save that frame pointer 

IF INCT+IOCT+LACT ; 

-,If there are input args 

MOV BP, SP 

; set up for stack access 

C = 0 ; 

; initialize argument count 

IRP X, <ARGS> 

; and loop through the argument list 

C = C + 1 

; using C to count from 1 to ARITY 

INARG X, XC, TR ; 

; generating stack fetches as we go 

ENOM 

-.End of argument-list processing loop 

ENOIF 

-.End of 'if there are input args' 

EPILOG MACRO REG 

;Generate EPILOG macro 

ENOF <ARGS>. REG, TR ; 

;Have it call ENOF with ARGLIST 

ENOM ; 

-.End of generated macro 

.CREF ; 

;Restore CREF 

ENOM ; 

-.End of PROLOG 

SETVAR MACRO T 

;-.Store Z to Nth VAR argument 

IFB <T> 

;;If no transport reg specified 

MOV SI, [BP+2*(ARITY-N)+6] ;; fetch parameter address 

MOV [SI], Z 

;; and load to where it points 

ELSE 

;;Else transport register given 

MOV T, [BP+2*(ARITY-N)+6] ;; fetch parameter address 


MOV [T], Z 

;-, and load to where it points 

ENOM 

-,;End of SETVAR 

OUTARG MACRO K, FML, TR 

;;Gen stack load for Kth VAR arg 

IFNB <FML> 

;;If blank, do nothing 

IRP REG, <AL,AH,AX,BL,BH,BX,CL,CH,CX.OL,DH,OX> 

IFIDN <FML>, <*&REG> 

-,;If it's an output-only arg 

SETVAR K, REG, TR 

;; store to its location 

EXITM 

;-, then exit the IRP 

ENOIF 

;; else continue list check 

IFIDN <FML>, <@&REG> 

;;If it's a VAR argument 

SETVAR K, REG, TR 

;; store to its location 

EXITM 

;-, then exit the IRP 

ENOIF 

;; else continue list check 

ENOM 

;;End of IRP 

ENOIF 

;-,Skip if <ARG> is blank 

ENOM 

;;End of OUTARG 

MOVACC MACRO REG 

;;Gen code to move REG to AL/AX 

XOUT REG value returned ;;Show it in the listing 

IFDIF <RETREG>, <AX> 

;-,Skip the rigamarole if it's AX 

IFDIF <RETREG>, <AL> 

;; likewise if it's AL 

IRP X, <AH,CH,DH,BH,CL,DL,BL> ;-,Try 8-bit registers 

IFION <REG>, <X> 

;-,If REG is one 

MOV AL, REG 

;; then move it to AL 

EXITM 

;; then exit the IRP 

ENOIF 

;; else try the next one 

ENOM 

;;End of 8-bit register IRP 

IRP X, <CX,OX,BX,SI,DI,BP,SP> ;;Try 16-bit registers 

IFIDN <REG>, <X> 

;;If REG is one 

MOV AX, REG 

;-, then move it to AX 

EXITM 

;; then exit the IRP 

ENOIF 

;; else try the next one 

ENOM 

-,;End of 16-bit register IRP 

IFIDN <REG>, <CY> 

;;Should carry flag be returned? 

XOR AL, AL 

;; If so, zero AL 

RCR AL 

;; and rotate in the carry bit 

ENOIF 

;-,End of carry bit processing 

ENOIF 

-,-,Skip here if RETREG was AL 

ENOIF 

;-,Skip here if RETREG was AX 

ENOM 

;;End of MOVACC 

ENOF MACRO ARGS.RETREG.TR 

-,Gen stack loads and RET for routine 

.XCREF 

;Don't need cross-referencing here 

IF OUTCT + lOCT 

;If there are output arguments 

MOV BP, SP 

; set up for stack access 

C =0 

; initialize arg ctr 

IRP X, <ARGS> 

; and loop through it. 

C = C + 1 

; using C to count from 1 to ARITY 

OUTARG XC, X, TR 

; generating stack loads as we go 

ENOM 

;End of argument list processing loop 

ENOIF 

;Now handle the return 

IFNB <RETREG> 

;If a return reg has been specified 

MOVACC RETREG 

; generate code to move it to AL or AX 

ENOIF 

;skip here if RETREG was blank 

POP BP 

-.Restore frame ptr 

RET 2*ARITY 

;Clean args off stack 

XOUT 

;Make spacing blank line in listing 

.CREF 

;Restore cross-ref'ing for next routine 

ENOM 

;End of ENOF 

WITHl MACRO OP, K, ARG 

-, ;Apply OP to 

OP [BP+2*(ARITY-K)+6], ARG ;;Kth stack entry & ARG 

ENOM 

;;End of WITHl 

WITH2 MACRO OP, ARG, K 

;-.Apply OP to 

OP ARG, [BP+2*(ARITY-K)+6] ;-,ARG & Kth stack entry 

ENOM 

-.-.End of WITH2 

SYS MACRO NAME, INTN, FUNCN 

, ARGS, REG ;;Gen SYS call interface 

XOUT NAME ; 

-.Let user know we're here 

PUBLIC NAME 

-.Make sure proc is accessible to Pascal 

NAME PROC FAR ; 

;Start of generated procedure 

PROLOG <ARGS> ; 

-.Count & fetch input arguments 

INTFUN INJN, FUNCN ; 

;Call the interrupt function 

EPILOG REG 

;Call the macro generated by PROLOG 

NAME ENOP ; 

-.End of generated procedure 

ENOM 

-.End of SYS 

.LALL 


.CREF 


.LIST 



186 


PC Tech Journal 















^ ^ f i^imm mm *m» 


\m ’ **^ t m%m'm mm ♦*» 
sm mm \my,m'mm m'>tmm 
im 'tim*m'^'.m* im 


ym ': *** mm m,m',///M0//„M//‘y, m/ /' 

‘.m wm ‘vm >. mm vm i mm vm i m immim % mmi^ 


nu i* MU m mvi mm m 'mm m ftm 

'/m %m *, mm\ ^ mti -urn 


mmmm* 




mim^ 


urn If u*ff m im 
im i'^',4m>,m - . 

im mmummimtummi- 
im 

0tf m m 


im mn-ii>*i' 0 ^nmit' im 
im 


im-*- 

tm ' *M' mm iwm *>m '' ' 

im \*t n uif ^mtm*.mnt 


mpM. 

u m0 tm^, 

".tm T» n^i m» 
m0 im 






m m *tmm imum^oMm 




S^s 

y^m^m 


\m p i*m i^uaum m* u^-umm 
im if x^rnmim im im »*»»f* f» mmf 
im fm» * u-t* frt;*u^ wfm 

tm *u 


PC Tech Journal Program Listings on Diskette. 


T hat’s right! ’Vbu don’t have to 
type in detailed program listings 
from this Sept, issue. "Von can order 


CALL TOLL-FREE 1-800-526-0790 

New Jersey residents: (201-540-0445) 

OR MAIL COUPON BELOW 


them on a LISTING DISKETTE" 
from PC Tech Journal. And on the 
same diskette you’ll also receive the 
program listings for last month’s issue. 

Certain listings require use of 
other material (e.g. Pascal compiler). 
Please consult relevant article in 
magazine. 

For your added convenience, we 
also offer two other LISTING 
DISKETTES from previous issues. 
They’re all listed in the coupon. To 
order, simply fill it out. Charge-card 
customers can also use our toll-free 
telephone numbers. (Sorry, no C.O.D. 
or “bill me” orders.) 


'U PC TECH JOURNAL 


ra'-vm-iK l A 1 Listing Diskette Service 
OURNAL 39 East Hanover Avenue 


Morris Plains, NJ. 07950 
Please send me the following Listing Diskettes: 

□ No. 5—Aug. & Sept. ’84 issues.$19.95 

□ No. 4—June & July ’84 issues.$19.95 

□ No. 3—Apr. & May ’84 issues.$19.95 

Total $_ 

□ Check Enclosed 
□ MasterCard 
No_ 


Signature- 

Name_ 

Company. 

Address_ 

City- 


□ Please charge my credit card: 
□ Visa □ American Express 

_Expiration Date_ 


- State _ 


-Zip- 


Pleasc allow approximately four to six weeks for delivery. j 



























LEGAL BRIEF 


Max Stul Oppenheimer 

Computer Crime 

Three lessons from criminal law 


M aximal use of the legal sys¬ 
tem often requires making le¬ 
gal tools that were designed for one 
purpose serve another,- likewise, ob¬ 
taining adequate comfort with a 
proposed project may require analy¬ 
sis of legal principles that at first 
glance seem wildly inapposite. 

What follows are recent develop¬ 
ments in criminal law that may ap¬ 
ply to computer users even if they 
don't consider themselves criminals. 
And SO: a warning, a tool, and a 
marketing survey. 

A Warning 

Many computer stores offer elec¬ 
tronic bulletin boards at no cost to 
their customers. According to a re¬ 
cent survey (I called the owner of a 
store), such boards are great for 
public relations, require no hard¬ 
ware that wouldn't be in stock any¬ 
way, take little attention, and are 
risk-free as long as comments about 
third parties are mildly edited. 

My survey respondent, how¬ 
ever, had not seen a message on the 
local board alleging that the opera¬ 
tor was served with a search war¬ 
rant and his system seized "because 
of a message that had been left, un¬ 
known to [the operator], on one of 
the public boards." More details 
were provided in the Los Angeles 
Times report of the incident. Ac¬ 
cording to the Times, an ATStT 
credit card number had been posted 
anonymously on the board. Pacific 
Bell obtained a search warrant and 
seized both hardware and the disks 


containing the bulletin board mes¬ 
sages. A California statute makes it 
a misdemeanor to publish a credit 
card number with the intent or rea¬ 
sonable knowledge that it will be 
used to avoid phone charges. 

Within the same month, TRW 
Information Systems reported that a 
password to its credit files had been 
posted on an electronic bulletin 
board. The bulletin board has not 
yet been located, but TRW has 
changed its password. 

If either systems operator is 
ever charged, a court will have to 
resolve hard questions—is the oper¬ 
ator an aider and abettor if his 
board is used to facilitate criminal 
activity, or is he simply a passive 
conduit like the phone company? If 
he could be considered an aider and 
abettor, then where is the line 
drawn? Hasn't the author of the 
communications package helped, 
too? What about the manufacturers 
of the modem and computer? 

The court would have to decide 
whether systems operators should 
be censors of the contents of their 
users' communications and whether 
users of electronic communications 
have any right to privacy of their 
communications. 

A Tool 

Title 19 1526(a) of the United 
States Code prohibits importing 
merchandise into the United States 
"if such merchandise, or the label, 
sign, print, package, wrapper, or re¬ 
ceptacle" bears a federally regist¬ 


ered trademark that has been filed 
with the Treasury Department. 
Title 19 1526(e) provides for the sei¬ 
zure of merchandise bearing coun¬ 
terfeit marks. As part of its effort to 
protect the Apple logo and copy¬ 
rights, Apple Computer registered 
with U.S. Customs (an agency of 
the Treasury Department) and pro¬ 
vided technical assistance and coop¬ 
eration in detecting illegal imports. 
The efforts culminated in indict¬ 
ments of six individuals and five 
companies, and, to date, one jail 
sentence. IBM has recently instit¬ 
uted a similar program. 

A Marketing Survey 

The American Bar Association 
didn't set out to do a marketing sur¬ 
vey—it wanted to know how the 
Fortune 500 and several specific in¬ 
dustries and government agencies 
were affected by and dealing with 
computer crime. In the process, 
however, it produced perhaps the 
best marketing survey to date on 
the potential demand for computer 
security products and services. 

The survey's purpose was to in¬ 
vestigate "the nature of computer 
crime, its causes, its perpetrators, its 
victims, its effects, and how its oc¬ 
currence can be prevented or dimin¬ 
ished"—a tall order for 283 re¬ 
sponses to a 12-page survey. 

Computer crime, as defined in 
the American Bar Association sur- 

Max Stul Oppenheimer is a partner in the 
law firm of Venable, Baetjer, and Howard in 
Baltimore. 


188 


PC Tech Journal 









LEGAL BRIEF 


vey, includes '^criminal activities di¬ 
rected against computers and their 
components, criminal activities 
which use computers or their com¬ 
ponents as instruments to perpetrate 
crime, and other activities involving 
computers which, while they may 
not constitute 'crimes' in the strict 
legal sense, nevertheless amount to 
abuse which perhaps should be de¬ 
clared illegal." 

Seventy-two respondents re¬ 
ported having sustained, in the ag¬ 
gregate, "known and verifiable 
losses . . . during the last twelve 
months" of between $145 million 
and $730 million (the large gap re¬ 
sults from the wording of the sur¬ 
vey, which asked for estimates of 
ranges of losses). On the other hand, 
125 respondents reported no 
"known and verifiable losses," and 
78 reported having no way to tell. 

An overwhelming majority of 
the survey respondents said that the 
responsibility for controlling com¬ 
puter crime rested with the private 
sector rather than with the govern¬ 
ment, and only a small percentage 
said that the responsibility was that 
of the manufacturers. Again by a 
wide margin, the "most effective 
means of preventing and deterring 
computer crime" was deemed to be 
"more comprehensive and effective 
self-protection by private business." 

The ABA survey certainly dis¬ 
pels any doubt about the existence 
of an enormous market for com¬ 
puter security services and products. 
Marketing people should be very in¬ 
terested in the following statistics 
(the whole report is available for $5 
from the ABA, Section of Criminal 
Justice, 1800 M Street, N.W., Wash¬ 
ington, D.C. 20036): 

1. The most significant types of 
computer-related crime (ranked 
by the number of respondents 
identifying the type as "signifi¬ 
cant"—the respondents had been 
asked to rate the significance of 
each type, but a large number of 
them "did not interpret the ques¬ 


tion correctly"). Those that got 
more than 100 votes: 

a. Use of a computer as an in¬ 
strument in the theft of assets 
(241 votes) 

b. Destruction or alteration of 
data (221 votes) 

c. Use of a computer as an in¬ 
strument in embezzlement 
(203 votes) 


d. Destruction or alteration of 
computer software (190 votes) 

e. Use of a computer to commit 
fraud against consumers, in¬ 
vestors, or users (184 votes) 

f. Theft of computer software 
(178 votes) 

g. Unauthorized use of a com¬ 
puter for personal program¬ 
ming activities (140 votes) 


Run More Than One Program With: 

^ MULTI-JOB 

^ FOR THE IBM 
PERSONAL COMPUTER AND XT 

* No special hardware is required (except memory). 

* Multiple programs can run concurrently using PC DOS. 

* Programs can be run simultaneously or one at a time. 

* Up to 9 separate jobs. 

* Free 30-day trial period. 

* Have a true multi-user system with the MULTI¬ 
TERMINAL-MONITOR (MTM) option. 

* More cost effective than buying a second machine. 

MULTI-JOB $159.00 

Gives you multi tasking using PC DOS. 

MULTI-JOB/MTM PACKAGE $295.00 

Gives you multi tasking and multi users using PC DOS. 
ELECTRONIC DISK $ 49.00 

Creates one or more super fast disk drives from memory. 
SPOOL PROGRAM $ 24.00 

Will redirect printing to memory. 

SET MEMORY UTILITY $ 24.00 

Allows you to set the effective size of memory without 
removing the cover or changing any switches. 

PC CALCULATOR $ 35.00 

Turns your computer into a calculator. 

EXCITING NEW DISCOVERY! Have you ever had the need 
for a letter quality printer? They are nice to have, but cost from 
$600 to $3000. Although many of them allow different type 
styles and fonts, changing fonts requires changing the physical 
head on the machine. The FANCY FONT PROGRAM allows 
different typestyles and font types and is printed by a stan¬ 
dard IBM graphic printer. Available now for $179.00 


B&L COMPUTER CONSULTANTS, 7337 Northview, Suite B, 
Boise, ID 83704, (208) 377-8088. 


Dealers inquiries are welcome. Call or write for a free catalog. 

CIRCLE NO. 153 ON READER SERVICE CARD 


September 1984 


189 















LEGAL BRIEF 


h. Use of computer as an instru¬ 
ment for sabotage (123 votes) 

i. Theft of raw output data 
(110 votes) 

2. The most common crimes in 
which a computer, its compo¬ 
nents, or its output was the ob¬ 
ject of the crime (ranked by 
number of occurences during the 
most recent 12-month period): 

a. Thefts of computer software 
(45 votes) 

b. Thefts of computer hardware 
(43 votes) 

c. Destruction or alteration of 
data (23 votes) 

d. Destruction or alteration of 
computer software (23 votes) 

e. Thefts of raw output data 
(22 votes) 

f. Thefts of input data 
(12 votes) 

g. Destruction or alteration of 
computer hardware (10 votes) 

h. Thefts of coded output data 
(7 votes) 


3. The most common perpetrators 

(where known): 

a. A computer programmer or 
“software personnel" 

(67 votes) ^ 

b. A nonsupervisory computer 
operator (42 votes) 

c. Nonsupervisory personnel not 
directly involved with com¬ 
puters (40 votes) 

d. An individual with no prior 
relationships with the organi¬ 
zation (37 votes) 

e. An outside consultant 
(22 votes) 

f. A computer operations super¬ 
visor (22 votes) 

g. An executive or manager not 
directly involved with com¬ 
puters (21 votes) 

h. A competitor (16 votes) 

i. A customer or a client 
(11 votes) 

4. The most common crimes in 

which a computer was an instru¬ 
ment in the perpetration of a 


crime (ranked by number of oc¬ 
currences during the most recent 

12-month period): 

a. Unauthorized use of com¬ 
puter for personal program¬ 
ming activities (63 votes) 

b. Thefts of assets, tangible or 
intangible (44 votes) 

c. Embezzlement (22 votes) 

d. Fraud against consumers, in¬ 
vestors, or users (14 votes) 

e. Sabotage (13 votes) 

f. Extortion or blackmail 
(5 votes) 

The survey notes that many re¬ 
spondents seemed to be asking 
“Why don't companies that design 
or manufacture computer systems 
pay more attention to security fea¬ 
tures in the design stage? Why 
don't companies (and government 
agencies) invest more in computer 
security, research, and usage?" 

There appears to be a large market 
that is waiting for companies to an¬ 
swer those questions. um—i 


Use ALL the Power of Your 
MS-DOS, IBM PC-DOS, or CP/M-80 System 
with UNIX-Style Carousel Tools 



ch “CP/M” “MS-DOS”<doc>newdoc 
diff newdoc doc I more 
ed newdoc 

kwic newdoc I sortmrg I uniq I unrot >index 
make -f makdoc ndx 


Carousel Tools and Carousel ToolKits are trademarks of Carousel 
MicroTools, Inc. CP/M is a trademark of Digital Research; IBM is a 
trademark of International Business Machines; MS is a trademark of 
Microsoft; UNIX is a trademark of Bell Laboratories. 


CAROUSEL TOOLS are a proven set of over 50 programs 
designed to be used with pipes, redirected I/O and 
scripts. In the style of UNIX each Tool does one thing 
well, and the Tools can be used together to do more 
complex tasks. 


YOU ACCOMPLISH MORE using Carousel Tools: better 
programming and documentation support, simpler 
data and file housekeeping, more general file 
handling. 

TOOLS FOR PC/MS-DOS 2.x AND CP/M-80 are available 
now. The DOS ToolKit is $149. The CP/M ToolKit is $249 
and includes a shell to provide pipes, redirected I/O, 
and scripts. Source code is available for $100 more. 


ORDER YOUR TOOLKIT TODAY. 

CIRCLE NO. 113 ON READER SERVICE CARD 



CALL OR WRITE: 

^CAROUSEL MICROTOOLS, INC. 

609 Kearney Street, El Cerrito, CA 94530 (415) 528-1300 


















the 

RTool 

Experts need expert tools. The correct tool, close at hand, saves 
you time and gives you the leverage to get results fast. 

RTool is a new concept in programming aids, a powerful set of 
resident general purpose tools that you can awaken 
with a single keystroke. RTool eliminates the need for manuals, 
scratchpaper, and printouts, saving you time when time is money. 
And, like any good tool, RTool is easy to use. 

Use RTool to capture and save screen images, scan and load disk 
files, and access on-line help. Create and save keyboard 
macros. Submit block text to the keyboard. List, rename, and 
delete files. Change directories. And much more. All with a 
few keystrokes. Even when another program is being used. 

RTool closes the loop between the keyboard, display, and disk 
drives, letting them communicate with each other in a 
simple and consistent way. Think of RTool as a set of 

powerful new 
features for every 
program you own. 

Available for the PC/XT, 
PCDOS 1.1/2.0. Write 
for free literature 

^ or a demo disk ($15). 

BitWit SoftWSrG special introductory 

3790 El Camino Real, #205 offer: both DOS versions $149 

Palo Alto, CA 94306 ($l58inCA). 

415/494-2611 


CIRCLE NO. 274 ON READER SERVICE CARD 




DIRECTORY 
COMMAND 
SYSTEM 
for the 
IBM PC & XT 


Which would you prefer? 


THIS 


A> 


THIS 

— Designed 
with the 
“New User” 
in mind 

— A must for 
Hard Disk 
systems 

— Compatible 
w/DOS 1.10 
and 2.00 



Idir replaces the DOS prompt with an interactive command system that 
eliminates the need to type commands and/or filenames to the command line. 
Files are accessed and programs are executed by positioning Idir's scrolling 
FILE and COMMAND CURSORS, and pressing <ENTER> Controlled by the arrow 
keys, the CURSORS are easy to use “pointers.” 


P.O. Box 2867, Boise, ID83701, (208) 342-5849 


Suggested Retail Bourbafei Inc \/ 

* 95.00 7 € 


PROGRAMMER’S 
DEVELOPMENT TOOLS 
AND ACCESSORIES 


IBM Personal Computer 
Language and Utility Speciaiists 


OPERATING SYSTEMS: 


Concurrent DOS DRI NEW $350 CALL 

Concurrent CP/M-86 DRI Multitasking 350 239 
Unx-ll IDS Requires 10 MB hard disk 895 CALL 


Cali for CP/M-86 products 


r 


*** X-Shell *** 

by Standard DataCom 

Bring Unix-like Capabilities 
to your PC 

Make more effective use of your 
valuable programming time. 

Manufacturer List $225 Our Price $205 


LANGUAGES: 


Lattice C Compiler 

500 

295 

ADA-86 - 1 - Tools Janus 

700 

499 

C-86 Computer Innovations 

395 

319 

DeSmet C Compiler with Debugger 

159 

145 

Professional BASIC Morgan Computing 

345 

295 

Assembler w/Z-80 Translator 2500 AD 

100 

89 


Call for Microsoft and Digital Research Products 


“C" Language Starter Kit 

Package Consists of: 

DeSmet C Compiler w/Debugger $159 145 
Windows For C Creative Solutions 150 119 
AKA ALIAS Soft Shell Technology 60 57 ! 

C Programming Language | 

1 book by K&R 25 20 

Retail $394, Priced Separately $341 

Our Special Package Price $329! 




STSC APL*Plus/PC 

We can support you! 

Complete demonstration package with 
diskette for $5, refundable with purchase. 
Total APL system including character 

1 generator chip. 

Manufacturer List $595 Our Price $540 

1 


UTILITIES: 


CodeSmith-86 Debugger Visual Age 

$145 

129 

Profiler DWB & Associates 

175 

149 

Btrieve SoftCraft 

245 

205 

Windows for C by Creative Solutions 

150 

119 

Translator APC PC BASIC to MEGABASIC 

195 

175 

OPT-TECH Sort High Performance Utility 

99 

87 

C Functions Lib. by Greenleaf Software 

175 

159 

Float-87 8087 Software Support 

125 

99 

Panel Screen Design/Editing 

350 

234 

C-Food Smorgasbord 

150 

110 

Halo Color Graphics for Lattice. CI-86 

200 

125 

Plink-86 Overlay Linkage Editor 

395 

310 

MetaWINDOW USA-Like Windows for PC 

150 

139 

64K MEMORY: 



64-K Memory Chip Kits w/instructions 

100 

55 


Mi l Visa/MC 

■■■i [ Wirj NO EXTRA CHARGE 

Account is charged when order is shipped 
Prices are subject to change without notice 

CALL FOR LOW PRICES 

1 - 800 - 336-1166 


Programmer’s Connection 

281 Martinet Drive 
Kent, Ohio 44240 
(216) 678-4301 (In Ohio) 

Programmers Serving Programmers 



CIRCLE NO. 108 ON READER SERVICE CARD 


CIRCLE NO. 226 ON READER SERVICE CARD 



















































































TECH RE 

Hardware, software, 
and other developments 
for the PC 


PC-9 Track 




HARDWARE 


Further price reduc¬ 
tions have been announced 
by IBM, which, already has 
lowered its prices on the Por¬ 
table PC and PC/r and intro¬ 
duced less expensive versions 
of the PC and PC/XT. The 
cost of the XT 370, model 
568, was dropped by almost 
$500 to $6,230. Model 588, 
which has a 10-megabyte 
fixed disk, was reduced by 
$900 to $8,085. IBM also low¬ 
ered the price of the 3270, 
model 2, with 256K memory, 
display adapter, disk drive ad¬ 
apter and keyboard adapter, 
from $4,290 to $3,785; model 
4, with 384K and model 2 
features plus a printer adapt¬ 
er, from $5,319 to $4,650; 
and model 6, with 384K and 
fixed disk adapter, from 
$7,180 to $6,210. 

IBM 

To locate your nearest au¬ 
thorized dealer or product 

center, call 800-447-4700. 

CIRCLE 450 ON READER SERVICE CARD 


The Microperipheral 
Corporation has an¬ 
nounced a portable modular 
telephone jack attachment 
for computer telecommunica¬ 
tions. Called The BLACK 


JACK, the product permits 
use of computerized telecom¬ 
munications in locations that 
do not have modular (RJllC) 
phone jacks. It also elimi¬ 
nates the loss of line sensitiv¬ 
ity associated with the use of 
acoustical couplers. The 
BLACK JACK is constructed 
of rubber with a built-in cir¬ 
cuit card and modular jack. 
Its unique connectors make 
it compatible with single- or 
multi-line telephone hand¬ 
sets. $49.95. 

The Microperipheral 
Corporation 

2565 152nd Avenue N.E. 

Redmond, WA 98052 

206-881-7544 

CIRCLE 451 ON READER SERVICE CARD 



The BLACK JACK 


A magnetic tape subsystem 
for PCs called PC-9 Track 
has been introduced by 

Alloy Computer Prod¬ 
ucts. PC-9 Track includes 


an intelligent interface that 
utilizes a Z-80 microprocessor 
and proprietary firmware to 
provide data transfer between 
a PC and a mainframe-com¬ 
patible 9-track tape drive 
with an embedded formatter. 
The subsystem has up to 42 
megabytes of back-up and 
working storage and provides 
high-speed disk-to-tape trans¬ 
fer at rates of .7 Mbytes per 
minute. $6,595. 

Alloy Computer Products 
100 Pennsylvania Avenue 
Framingham, MA 01701 
617-875-6100 

CIRCLE 456 ON READER SERVICE CARD 


The Toaster Plus storage 
subsystem from XCOMP 
offers the 2.78-megabyte 
SuperFloppy Drive, which 
provides 3.33-megabyte (un¬ 
formatted) storage capacity 
and 3-millisecond track-to- 
track performance in a com¬ 
pact, half-height 5 ^4-inch 
minifloppy format. A propri¬ 
etary track-following servo 
system ensures accurate, on- 
track read/write head posi¬ 
tioning. The system has a 
transfer rate of 500 kilobits 
per second. $3,995 for one 
SuperFloppy Drive plus 15- 
Mbyte (formatted) hard disk. 
$4,995 for one SuperFloppy 


drive and 31.5-megabyte (for¬ 
matted) hard disk. 

XCOMP 

3554 Ruffin Road South 
San Diego, CA 92123 
619-5730077 

CIRCLE 459 ON READER SERVICE CARD 



Toaster Plus 


Kamerman Labs has an¬ 
nounced a new inexpensive 
10-megabyte hard-disk sys¬ 
tem that stores 12.76 Mbytes 
unformatted and 10 Mbytes 
formatted. The Mega¬ 
flight 100 uses the DOS 
2.0 or 2.1 software drivers 
and typically requires no ex¬ 
ternal power supply. The sys¬ 
tem includes a hard-disk 
drive, the disk controller card 
with plugs and cables, and a 
manual. $895. 

Kamerman Labs 
7787 S.W. Cirrus Drive 
Beaverton, OR 97005 
503-626-6877 

CIRCLE 455 ON READER SERVICE CARD 


A series of Winchester disk 
subsystems that features 
compatibility with all IBM 
PC, XT, and compatible 
hardware, software, and 


192 


PC Tech Journal 














peripherals has been intro¬ 
duced by Data Technolo¬ 
gy Corporation. The 
TeamMate 1000 Series 

includes four models: Team- 
Mate 1110 (10-Mb internal 
Winchester); TeamMate 
1210 (10-Mb external Win¬ 
chester); TeamMate 1232 (32- 
Mb external Winchester); 
and TeamMate 1213 (10-Mb 
Winchester coupled with a 
Kodak 3.3 flexible 5^/4-inch 
drive). All models feature 
full transparency with DOS 
2.0 and all are FCC Class B 
approved. Installation takes 
only minutes and requires no 
special diskettes, software 
drivers, or formatting pro¬ 
grams. Price for model 1110: 
$1,495; model 1210: $2,095; 
model 1232: $3,395; model 
1213: $2,795. 

Data Technology 
Corporation 
277S Northwestern 
Parkway 

Santa Clara, CA 95051 
408-496-0434 

CIRCLE 460 ON READER SERVICE CARD 



Subsystem in the TeamMate 1000 Series 


The LaserJet Printer 
from Hewlett-Packard 

provides letter-quality output 
quietly and quickly: it regis¬ 
ters a noise level of less than 
55 decibels while printing, 
and it is eight times faster 
than a typical daisy-wheel 
printer. The printer is com¬ 
patible with major existing 
software packages, such as 
Lotus 1-2-3, Multimate, 
WordStar, etc. It offers reso¬ 
lution of 300 by 300 dots per 
inch, producing print quality 
nearly indistinguishable from 
copy produced on electric ty¬ 
pewriters. Numerous differ¬ 
ent fonts are available in 
plug-in cartridges; up to four 
typefaces can be mixed on 
one page. $3,495 with built- 
iji sheet-feeder and standard 
RS-232-C interface. 
Hewlett-Packard 
3000 Hanover Street 
Palo Alto, CA 94304 
408-973-7648 

CIRCLE 457 ON READER SERVICE CARD 


The PCX, a personal com¬ 
puter expander kit, has been 
introduced by NCR In¬ 
dustrial Systems. PCX 
consists of an inexpensive 
terminal-communications 
card, a software driver, a 


demonstration program, and 
an NCR 2840 Data Collec¬ 
tion Terminal. The terminal 
includes a 3-of-9 bar code 
wand, an alphanumeric key¬ 
board, a 16-character display, 
and an optical badge reader. 
On the communications card 
are an optically isolated 
RS-422 port, an RS-232-C 
port, and a timer. With su¬ 
perior common-mode noise 
rejection and true ground iso¬ 
lation between the PC and 
the terminal network, the 
RS-422 driver can support as 
many as 32 devices at dis¬ 
tances up to 4,000 feet. Com¬ 
munication takes place at 
9,600 bps. An IBM with 
MS-DOS and R/M COBOL is 
required for the demonstra¬ 
tion program. $2,500. 

NCR Corporation 
584 S. Lake Emma Road 
Lake Mary, FL 32746 
305-323-9250 

CIRCLE 462 ON READER SERVICE CARD 


A new graphics adapter 
board from STB Systems, 
Inc-STB GRAPHIX 
PLUS II— supports both 
RGB color and monochrome 
displays, switching the dis¬ 
play to the appropriate moni¬ 
tor automatically. The board 
is configurable as a color 
graphics and/or mono¬ 
chrome/printer adapter. A 


full-screen monochrome 
graphics driver and a 16-color 
driver are included in the 
package. $495. 

STB Systems, Inc. 

601 N. Glenville 
Suite 125 

Richardson, TX 75081 
817-732-7307 

CIRCLE 452 ON READER SERVICE CARD 



STB GRAPHIXS PLUS II 


The Peripheral Auto¬ 
matic Channel Emu¬ 
lator (PACE) from Data/ 
Ware Development, 
Inc. converts an IBM PC 
into an IBM Channel Simula¬ 
tor that can be used to per¬ 
form factory system testing, 
design, or "in-field diagnos¬ 
tics" of IBM or IBM-compati¬ 
ble peripherals. PACE can op¬ 
erate at a variety of channel 
speeds, including data 
streaming rates (3.0 mega¬ 
bytes per second). Features of 
the package include a bus/ 
tag IK trace buffer—which 
may be set to store data pre-, 
post-, or mid-trigger when a 
preselected channel state is 
matched—a microprogram 


September i984 


193 

















breakpoint, and single-step 
capability. $12,800. 
Data/Ware 
Development, Inc. 

4204 Sonento Valley Blvd. 
San Diego, CA 92121 
619-453-7660 

CIRCLE 453 ON READER SERVICE CARD 


Epson has announced two 
new dot-matrix printers de¬ 
signed specifically for OEMs 
and system integrators. The 
CTM F-lOO and the CTM 
F-80 print at 160 CPS and 
feature high-resolution print 
characters, multiple print 
modes, universal power sup¬ 
ply, extended character sets, 
and 20 percent greater 
throughput than the com¬ 
pany's FX series. The CTM 
F-lOO prints 136 columns,- the 
CTM F-80 prints 80. CTM 
F-lOO: $500. CTM F-80: $370. 
Epson OEM Products 
Division 

3415 Kashiwa Street 
Torrance, CA 90505 
213-533-8277 

CIRCLE 458 ON READER SERVICE CARD 


A new data communications 
product from Complexx 
Systems allows three com¬ 
puters and/or peripherals to 
share a single dial-up line si¬ 
multaneously. TriMux.212 
incorporates a three-channel 
statistical multiplexer with 


an auto-dial/auto-answer Bell 
212A modem. Users can 
choose from three modes of 
operation. First, data from 
three devices can be multi¬ 
plexed onto a regular dial-up 
call. Second, when the com¬ 
puters and peripherals are 
not using TriMux.212 as a 
concentrator, any of the de¬ 
vices can individually access 
and use the modem to call 
any other 212A modem. Fi¬ 
nally, the three local devices 
can access and communicate 
with one another through a 
local data switch. $1,495. 
Complexx Systems, Inc. 
4930 Research Drive 
Huntsville, AL 35805 
205-830-4310 

CIRCLE 463 ON READER SERVICE CARD 



TriMwc.212 


Microscience Interna¬ 
tional Corporation has 

introduced a 3.5-inch half¬ 
height Winchester disk drive 
with a full 10 Mb of format¬ 
ted storage. The HH-312 
will interface with all micro 
systems using the computer's 
own power supply. It has an 


unformatted capacity of 
12.76 Mb per drive and a 
data transfer rate of 5 Mb per 
second; average access time is 
70 milliseconds. A propri¬ 
etary closed-loop servo posi¬ 
tioning system is used to mi¬ 
crostep the heads to the exact 
center of the data track. The 
HH-312 uses a single PCB in 
place of a multiboard system,- 
reliability is improved 
through the use of LSI cir¬ 
cuitry that eliminates be- 
tween-board interconnects. 
Under $900 for OEMs. 
Microscience International 
Corporation 
575 E. Middlefield Road 
Mountain View, CA 94043 
415-961-2212 

CIRCLE 461 ON READER SERVICE CARD 


An add-on circuit board 
called the jr-87 has been an¬ 
nounced by TIAC Manu¬ 
facturing, Inc. This 
board permits the high-speed 
8087 Numeric Data Proces¬ 
sor to be plugged into the 
PC/r. The board does not in¬ 
terfere with the operation of 
the PC/r's peripherals and 
does not modify the PC/r in 
any way. The 8087 operates 
at the same speed on the 
PC/r as it does on the PC. 
Software designed to run 
with the 8087 on the PC 


will run with no modifica¬ 
tions on the PC/r. $89.95. 
TIAC Manufacturing, Inc. 
3084 Spring Street 
Port Moody, British 
Columbia 
Canada V3H 1Z8 

CIRCLE 454 ON READER SERVICE CARD 



ir-87 


The Electronic Disk 
from Distributed Logic 
Corporation is a fast 
floppy drive emulator for the 
IBM PC. Its maximum useful 
displacement is 360K, and it 
may be formatted as an 
eight- or nine-sector disk. 

The board plugs into any 
I/O slot in the PC or XT and 
requires no software installa¬ 
tion. The Electronic Disk can 
be 62.5 times faster than a 
floppy disk. $995. 

Distributed Logic 
Corporation 

12800 Garden Grove Blvd. 

Garden Grove, CA 92643 

714-534-8950 

CIRCLE 464 ON READER SERVICE CARD 


194 


PC Tech Journal 



















Omnis 1, Omnis 2, and Omnis 3 


SOFTWARE 


A multitasking system has 
been developed for the IBM 
PC by Digital Research, 
Inc. The product, Con¬ 
current PC-DOS, allows a 
PC to run four PC-DOS or 
CP/M application programs 
at the same time. It has a 
window capability, enabling 
the user to view the execu¬ 
tion of all four applications 
simultaneously. Several pro¬ 
ductivity tools are included 
as part of the Concurrent PC- 
DOS package, including 
Print Spooler, which allows 
users to queue documents to 
be printed while other tasks 
are printed; and Rolodex, a 
sorting and searching pro¬ 
gram for lists of names and 
addresses. Concurrent 
PC-DOS has a two-user fea¬ 
ture for use primarily as a re¬ 
mote dial-up link. $295. 
Digital Research, Inc. 

160 Central Avenue 
Pacific Grove, CA 93950 
m-649-3896 

CIRCLE 472 ON READER SERVICE CARD 


IBM has redesigned the 
Technical Reference 
Manuals for the PC, 
PC/XT, and Portable, updat¬ 
ing all technical information 
on the computers' features 
and options. The revised 


manuals include three new 
publications—one that con¬ 
tains information unique to 
an IBM PC system, one for 
the PC/XT and Portable PC, 
and a third reference that in¬ 
cludes information common 
to all PC family products, in¬ 
cluding adapters and I/O de¬ 
vices. With the Options and 
Adapters manual, IBM will 
provide an Update Informa¬ 
tion Service through June 
1985. Prices: The IBM Person¬ 
al Computer System Techni¬ 
cal Reference Manual, $30; 
The IBM Personal Computer 
XT/Portable Personal Com¬ 
puter Technical Reference 
Manual, $30; The IBM Per¬ 
sonal Computer Options 
and Adapters Technical 
Reference, $125. 

IBM 

P.O. Box 1328 

Boca Raton, FL 33429-1328 

305-998-2000 

CIRCLE 466 ON READER SERVICE CARD 


A series of three database 
programs for microcomputers 
has been introduced by 
Organizational Soft¬ 
ware Corp. The programs 
become progressively more 
comprehensive, and they can 
be upgraded as needed. 
OMNIS 1, The File 
Manager is designed for 


first-time users and is capable 
of handling basic information 
management tasks such as 
mailing-list maintenance, 
time management, and dia¬ 
ries. OMNIS 2, The In¬ 
formation Manager 
builds on the capabilities of 
OMNIS 1, offering multi¬ 
screen records with up to 120 
information items per record, 
performing calculations on 
records, and providing search 
and retrieve facilities with 
full logical operators. OM¬ 
NIS 3, The Database 
Manager supports up to 12 
open files at once, operates as 
a relational or hierarchical 
database system, and gener¬ 
ates complete turnkey sys¬ 
tems. OMNIS 1, $95; OMNIS 
2, $195; OMNIS 3, $295. 
Organizational 
Software Corporation 
2655 Campus Drive 
Suite 150 

San Mateo, CA 94403 
415-571-0222 

CIRCLE 469 ON READER SERVICE CARD 


ColorScreenPrint, a 

software utility that increases 
the color capabilities of the 
IBM Color Printer, has been 
introduced by Applica¬ 
tion Techniques. With 
ColorScreenPrint, the user 
can choose from 16 standard 
colors or thousands of user- 


defined colors. Any graph 
that can be displayed on an 
IBM PC color display adapter 
can be printed at any size up 
to 13 inches at any position 
on the paper. 

Application Techniques 
80 Townsend Street 
PeppereU, MA 01463 
617-433-5201 

CIRCLE 477 ON READER SERVICE CARD 


Three programs that are 
meant to aid photographers 
in the darkroom are now 
available for the IBM PC and 
PCjr. Darkstar provides so¬ 
lutions to a variety of dark¬ 
room problems, including ex¬ 
posure, filtration, and pro¬ 
cessing time. Timestar al¬ 
lows timing control of as 
many as 15 sequential peri¬ 
ods. Darkstar Plus com¬ 
bines the capabilities of both 
Darkstar and Timestar. The 
publisher of these software 
programs is f/22 Press. 
Prices: Darkstar, $64.95; 
Timestar, $24.95; and Dark- 
star Plus, $89.95. 
f/22 Press 
P.O. Box 141 
Leonia, NJ 07605 
201-568-6250 

CIRCLE 479 ON READER SERVICE CARD 


September i984 


195 













Speed Key 


dB Compiler 


PFA Micro, an automated 
process flow analysis tech¬ 
nique, has been called the 
''productivity tool for the 
80s" by its producers, Con¬ 
trol Data Business 
Advisors. The technique 
uses flow charts to analyze 
repetitive operations. The 
PFA Micro package consists 
of a facilitator's kit, $950; a 
training module, $450; and 
application software, $950. 
Control Data Business 
Advisors 

3601 W. 77th Street 
Minneapolis, MN 55435 
612-921-4251 


CIRCLE 467 ON READER SERVICE CARD 



PFA Micro 


The first compiler developed 
for dBASE II has been an¬ 
nounced by WordTech 
Systems. The product, 
dB/Compiler, translates a 
dBASE II program into code 
that executes without the 
presence of dBASE II. It com¬ 


piles a dBASE II application 
program into modules that 
are smaller than the original 
application, saving disk space 
and, in some cases, executing 
faster. The compiled version 
protects source code more ef¬ 
fectively than encryption 
would. dB/Compiler also has 
cross-linkers available so that 
code can be produced for 
different operating environ¬ 
ments. Price: $750; cross¬ 
linkers, $350 each. 

WordTech Systems, Inc. 
Box 1747 
Orinda, CA 94563 
415-254-0900 

CIRCLE 468 ON READER SERVICE CARD 


Ashton-Tate and Infor¬ 
matics General Corpo¬ 
ration have jointly intro¬ 
duced a micro-mainframe 
link for personal computer 
database management sys¬ 
tems. Called dBASE/An¬ 
swer, the product allows da¬ 
tabase information to be 
transferred directly from an 
IBM mainframe file to an 
IBM PC or PC/XT running 
Ashton-Tate database man¬ 
agement software, such as 
dBASE II and III, Friday!, and 
Framework. dBASE/Answer 
will work in conjunction 
with a mainframe product 
from Informatics called 
Answer/DB. A typical con¬ 


figuration, consisting of an 
Answer/DB module for a 
single mainframe and 
dBASE/Answer for 50 PCs, 
would cost $45,000. 
Ashton-Tate 
10150 W. Jefferson Blvd. 
Culver City, CA 90230 
213-204-5570 

CIRCLE 470 ON READER SERVICE CARD 

Informatics General Corp. 
21031 Ventura Blvd. 
Woodland Hills, CA 91364 
213-887-9040 

CIRCLE 471 ON READER SERVICE CARD 


Microsoft has released 
new versions of Microsoft 
Pascal, FORTRAN, and 
C compilers for MS-DOS. 
Enhancements to Pascal in¬ 
clude high-speed math per¬ 
formance without an 8087 
chip, BCD floating point 
arithmetic and MS-DOS 2.0 
file and overlay linking op¬ 
tions. The new FORTRAN 
also includes new support for 
large arrays and complex 
numbers. The latest C com¬ 
piler now supports use of 
path names to take advantage 
of DOS directory structure 
and I/O redirection. It has 
expanded memory addressing 
capabilities. A programmer 
can now choose from a small-, 
medium-, compact-, or 
large- memory C compiler. 


Pascal 3.2, $300; FORTRAN 
3.2, $350; and C 2.0, $500. 
Microsoft 

10700 Northup Way 
Bellevue, WA 98009 
206-828-8080 

CIRCLE 474 ON READER SERVICE CARD 


Koala Technologies 
Corporation has intro¬ 
duced a product that im¬ 
proves its Koala touch tablet 
for business applications. 
With Speed Key, the tab¬ 
let becomes a custom key¬ 
board with overlays. Each 
overlay contains 36 soft keys 
dedicated to a specific busi¬ 
ness application program— 
including Lotus 1-2-3, Word¬ 
Star, MultiPlan, SuperCalc, 
VisiCalc, dBASE II, and 
PFS:Write. With Speed Key, 
the user does not have to re¬ 
member lengthy commands 
and multiple keystrokes 
required by a conventional 
keyboard. In addition, press¬ 
ing a button on the tablet 
will provide the user with 
mouse-like features. $99. 

Koala Technologies Corp. 

3100 Patrick Henry Drive 

Santa Clara, CA 95052 

408-986-8866 

CIRCLE 465 ON READER SERVICE CARD 


196 


PC Tech Journal 




























Computer Control Sys¬ 
tems has added a data, 
screen, and report manager to 
its product line. DB-FABS 
has been designed for use ei¬ 
ther in the stand-alone mode 
for the computer novice or in 
the run-time mode with a 
standard BASIC interpreter or 
compiler. The package allows 
the user to preset up to 16 
conditions in data files, 
forms, and keys; other fea¬ 
tures include automatic up¬ 
dating of indexed files and an 
archival file for saving del¬ 
eted records. $295. 

Computer Control Systems 
298 21st Terrace SE 
Largo, FL 33541 
813-586-1886 

CIRCLE 473 ON READER SERVICE CARD 


A database-management soft¬ 
ware package for PCs that is 
compatible with SQL/DS and 
Database 2 systems has been 
announced by Qint Data¬ 
base Systems Corpora¬ 
tion. Using Qint/SQL, 
companies can integrate indi¬ 
vidualized data processing on 
PCs with their centralized 
databases. Qint/SQL offers 
database-management capa¬ 
bilities to microcomputer us¬ 
ers. Three versions are avail¬ 
able; Query, for users who 
need only to retrieve data 
from a database,- Query + 




Floppickne 


Update, for users who need 
to enter and retrieve data; 
and Administrator, for those 
concerned with the creation, 
maintenance, and manage¬ 
ment of database systems. 
Prices from $1,000 for Query 
to $9,000 for Administrator. 
Qint Database 
Systems Corporation 
50 Waban Hill Road North 
Chestnut Hill, MA 
617-527-9329 

CIRCLE 478 ON READER SERVICE CARD 


A source code interactive li¬ 
brarian, SETrSCIL, has been 
announced by System En¬ 
gineering Tools, Inc. 
SCIL can maintain any pro¬ 
gram source code, regardless 
of language, and it allows the 
user to choose any ASCII text 
editor. The product is the 
first in a new line of software 
maintenance tools. Soon to be 
released are SET; FORM, a 
frame-oriented "include" me¬ 
taprocessor, and SET;PLAN, 
which will create and main¬ 
tain system design docu¬ 
ments. $695. 

System Engineering 
Tools, Inc. 

645 Arroyo Drive 
San Diego, CA 92103 
619-692-9464 

CIRCLE 475 ON READER SERVICE CARD 


In response to IBM's an¬ 
nouncement of a local area 
network cabling system, 
Ungermann-Bass, Inc. 
has said it will offer a version 
of its Net/One that will 
operate on the IBM 
cabling system. By adding 
data-grade twisted-pair wire 
to conform to IBM's specifi¬ 
cations, Net/One users will 
be able to select the most ap¬ 
propriate medium or combi¬ 
nation of media for their 
needs while insuring compat¬ 
ibility with IBM products. 
Ungermann-Bass 
2560 Mission College Blvd. 
Santa Clara, CA 95050 
408-496-0111 

CIRCLE 476 ON READER SERVICE CARD 


OTHER WARES 


Pivar Computing Ser¬ 
vices provides conversion 
services from magnetic tape 
to disk, disk to tape, and disk 
to disk. The company can 
convert more than 140 differ¬ 
ent formats and can create 
customized programs to re¬ 
format data to the customer's 
specifications. Pivar also of¬ 
fers conversion to mailmerge 
formats, dBASE conversion, 


upper- to lower-case conver¬ 
sion, and conversion to un¬ 
pack packed fields. Prices 
range from $15 to $65 per 
disk, depending on the 
format requested. 

Pivar Computing Services 
47 W. Dundee 
Wheeling, IL 60090 
312-459-6010 

CIRCLE 481 ON READER SERVICE CARD 


Automation Facilities 
Corporation has an¬ 
nounced Floppiclene, a 

completely disposable wet- 
dry disk drive head-cleaning 
system. The proprietary tech¬ 
nology assures safe and im¬ 
mediate elimination of con¬ 
taminants that collect on 
disk drive heads. The prod¬ 
uct is available for 3^2-inch, 

5 ^4-inch, and 8-inch disk 
drives. Each kit contains 20 
cleaning disks, Safeclene 
aerosol cleaning solution, two 
Safebond absorbent wipes, 
and two Safeclene presatu¬ 
rated antistatic screen wipes. 
The package costs $34.95. A 
home computer version with 
10 cleaning disks is available 
for $19.95. 

Automation Facilities 
Corporation 
Financial Plaza 
3916 State Street 
Santa Barbara, CA 93105 
805-687-7040 

CIRCLE 483 ON READER SERVICE CARD 


September 1984 


197 






















Behind BASIC's 
Back 

Some handy tricks to help you get 
the most from your IBM PC 


Sometimes it is necessary to sneak 
behind BASIC's back to get the 
most from the IBM PC. Here are a 
few handy tricks that can be used 
in many BASIC programs. 

This PEEK determines which 
monitor, color/graphics or mono¬ 
chrome, is currently active: 

10 DEF S£G=&H40 
20 MONO.CARD=(PEEK(&H10) 
AND &H30)=&H30 
30 COLOR.CARD=(PEEK(&H10) 
AND &H30)<>&H30 
40 IF NOT COLOR.CARD 
THEN . . . 

When mid-resolution graphics 
mode is entered, BASIC allows no 
choice of color for characters dis¬ 
played by the PRINT command. 
These POKEs provide that choice: 

DEF SEG: POKE &H4E,KOLOR 
for interpretive BASIC 
DEF SEG: POKE &H81,KOLOR 
BASCOM with /o option 
DEF SEG: POKE &HB5,KOLOR 
BASCOM with BASRUN 

Just set the KOLOR variable to 1, 2, 
or 3 and execute the relevant code. 

There is a "backdoor" way to 
change the background color of 
characters printed in graphics 
mode: if the user POKEs the correct 
color address with the command 
KOLOR + SiHSO, printed charac¬ 
ters will be XORed with the pixels 
that are already in place. This code 
sets the screen to a pseudo-inverse 
mode by filling it with white, then 
using the described POKE: 


10 SCREEN 1 

20 LINE (0,0)—(319,199),33F 
fill with white 
30 DEF SEG :POKE &H4E,&H83 
interpretive BASIC 
40 INPUT A$ 

now experiment 
50 POKE &H4E,3 

The last POKE resets the color val¬ 
ue to its default because the BASIC 
editor gets confused in this "XOR 
mode." While line 40 is executing, 
try this experiment: press the letter 
a, backspace and press b, backspace 
again and press c, backspace and 
press a, and finally, backspace and 
press c. The result is surprising. 

Users who have a good under¬ 
standing of the meaning of the bit¬ 
wise XOR function should be able 
to figure this trick out without try¬ 
ing it. Incidentally, any of the four 
colors can be used for either the 
foreground or the background. 

LPRINT Hints 

Most users who have two parallel- 
interface cards and two printers 
have wished for a simple way to 
swap the printers with a software 
command. The following code will 
do exactly that: 

100 DEF SEG=8lH40 

110 P8=PEEK(8) :P9=PEEK(9) 

120 POKE 8,PEEK(10) :POKE 
9,PEEK(11) 

130 POKE 10,P8 :POKE 11,P9 

This procedure can be used to 
modify a program so that it routes 


TECH 

NOTEBOOK 

Dan Rollins 

all LPRINTs and LLISTs to the de- 
sired printer. 

Of course, in order to keep pro¬ 
grams as flexible as possible, use of 
LPRINT should be avoided. Just 
OPEN the desired printer as a file 
and use PRINT# instead of 
LPRINT. In addition to being more 
flexible, this technique allows 
printer output to be sent to a text 
file or to the screen. 

BASICA version 2.0 will per¬ 
form a screen dump whenever the 
user presses Ctrl-PrtSc. The same 
thing can be done without user 
intervention with this sequence.- 

Y!=-51973.8 :X=VARPTR(Y!) 
:CALL X 

The secret to this sequence is that 
the floating-point representation of 
—51973.8 just happens to coincide 
to the opcode bytes for 

CD05INT 5 
CB RETF 
90 NOP 

and the CALL X transfers control to 
the address at which Y! is stored. 

In fact, any interrupt can be 
invoked by using the equation 
Y!= —(51968.8+int.num). This 
has few applications, because it 
doesn't pass any parameters or re¬ 
turn any values from the interrupt. 

These techniques, and others 
like them, will help users get the 
most from BASIC on the IBM PC. 

fmT»1 

Dan Rollins is a software consultant and 
freelance writer who hves in Cahfornia. 


198 


PC Tech Journal 



















TECH BOOK 


A Special Section for Product and Service Listings 


Accessories/Supplies 


RESET BUTTON FOR IBM PC 

The button IBM forgot. A good reset button is a 
basic tool for PC (PC/XT) programmers. When 
your machine is hung up, a touch of the button 
will quickly reboot your computer. This kit in¬ 
stalls easily and mounts out of the way behind 
your machine. Easy instructions included. Send 
$29.80 (add 6% in MN). 

RESET CORPORATION 
P.O. Box 14809 

Minneapolis, Minnesota 55414 
(612)489-5892 

IBM STYLE BINDERS, SLIPS 

Complete program packaging line. D-ring cloth 
binders, slip cases, floppy pages, game portfo¬ 
lios. Continuous paper with three large holes, 20 
lb. to go in binders. Blank disk envelopes. Func¬ 
tion key cards tell user your F1-F10 meanings. 
Call, write for prices. Catalog. Fast service, low 
prices. 

ANTHROPOMORPHIC SYSTEMS LIMITED 
376 E. St. Charles Road 
Lombard,! 60148 
(312)629-5160 


Computer/Services 


INTI DOCUMENTATION 

INTERNATIONAL DOCUMENTATION provides 
reliable service in the preparation of foreign 
documentation & mktg. materials. Service in¬ 
cludes translation, typesetting, & graphic art. 
Clear and accurate documentation in any lan¬ 
guage is a must. Let INTERNATIONAL DOCU¬ 
MENTATION make your foreign documentation 
speak for you. 

INTERNATIONAL DOCUMENTATION 
120 Barranca Ave. Suite A 
Santa Barbara, CA 93109 
(805)965-4761/(213)990-4886 


Hardware/ Add-on 
Boards 


EPROM/MP/PAL/BIPOLAR 

PROGRAMMER 

PC compatible APROM-2000 card can program 
2716, 32, 32A, 64,128, MCM 68764 EPROMS 
and also 8748/49/51 processors. The software 
(CP/M-86, MSDOS) can read, verify and pro¬ 
gram eproms and uses fast programming al¬ 
gorithm. The zero insertion socket is mounted 
on an external box. The external box for BIPO¬ 
LAR proms and PAL is also available. 
ADVANCED MICROCOMPUTER 
SYSTEMS, INC. 

6802 N.W. 20th Ave. 

Ft. Lauderdale, FL 33309 
305-975-9515 

DT2801 SERIES ANALOG I/O 

Plug-in data acquisition boards with 8DI/16SE 
analog inputs, high or low level programmable 
gains, 2 analog outputs, 16 lines of digital 1/0, 
DMA, on-board clock, and on-board micropro¬ 
cessor. Optional software subroutines and screw 
terminal panels. 

DATA TRANSLATION INC. 

100 Locke Drive 
Marlboro, MA 01752 
(617)481-3700 

256K NO SLOT MEMORY 

IBM PC-1 owners. Let us install up to 256K RAM 
on your EXISTING SYSTEM BOARD using NO 
SLOTS. We improve your IBM PC so it can ad¬ 
dress the 64K RAM chip, 256K-$335 (expand¬ 
able and warranted). DO-IT-YOURSELF KITS— 
PC-KPC-$69.95 ($99.95 assembled). 64K- 
RAMS-$5.85ea. 

ADD-MEM 
22151 Redwood Rd. 

Castro Valley, CA 94546 
(415)886-5443 

MULTI-COMM COMMUNICATIONS 

ESE introduces two specially designed RS-232C 
serial communications adapters for the PC & XT 
and compatibles. MULTI-COMM II fias two ports, 
$225.00, and MULTI-COM IV, a four port unit, 
$445.00. Both have ESE’s selectable 64K I/O 
address decoders and use a single interrupt line 
regardless of the number of ports added. 
ELECTRONIC SYSTEMS ENGINEERING CORP. 
477 Congress Street, Suite 911 
Portland, Maine 04101 
MC/VISA. (207) 773-7778 


RATES AND INFORMATION 

Listings are grouped by category and consist of a bold lead line (23 characters 
maximum), 7 lines of ad copy (45 characters per line), plus 4 lines of com¬ 
pany name, address and telephone number. 

Listings are available only on a 3 issue basis at $60. per issue ($180. total). 
Copy will have a set format and remain the same for all 3 months. Enhance 
the appearance of your ad by including your Logo at an additional cost of $25. 
per issue ($75. minimum extra charge). Pre-payment is required by check, 
money order, or American Express, Diners Club, MasterCard, Visa credit 
cards. Closing Date: 1st of 2nd month preceding cover date. 

Send copy and remittance to PC TECH JOURNAL, TECH BOOK, 12th 
FLOOR, 1 PARK AVENUE, NEW YORK, NY 10016. Call (212) 725-4215 for 
additional information or assistance. 


FIXED DISK BIOS/BOOT 

fiXT boots from DATAMAC, DAVONG, XEBEC, 
PERCOM, GREAT LAKES, ZOBEX, others. Adds 
XT-like BIOS interface for your disk to IBM PC or 
COMPAQ. Plug-in installation. DOS 2.0/2.1/reqd. 
Specify controller model with order $70 -t- $3 
shpg. -r- tax. MC/VISA (optional volume support 
at additional cost.) 

GOLDEN BOW SYSTEMS 
P.O. Box 3039 
San Diego, CA 92103 
(619)298-9349 


Hardware 

Communications 


TOTAL PC&XT COMMUNICATION 

ESE introduces two extremely powerful com¬ 
munications adapters for the PC&XT & com¬ 
patibles. One is a unique multi-interrupt RS-232 
serial add-on for one OR MORE users; $139.50, 
and the second is a programmable 24 line par¬ 
allel interface; $119.45. Both have ESE’s full 64K 
selectable 1/0 address decoders. 

ELECTRONIC SYSTEMS ENGINEERING 
477 Congress Street, Suite 911 
Portland, Maine 04112 
MC/VISA (207) 773-7778 


Hardware/ 

Peripherals 


Hardware Disk 
Drives 


8' & S'A" FLOPPY ORIVES ANO 
OISKETTES 

• 8" flexible disk subsystem—Attractive thin-line 
design stacks above or below system’s unit 
(1972" X 18" X 3/2") ANT with complete docu¬ 
mentation. Controller board and software 
available. 

1-8480 DD, DS, 2.4 MB $1495 
1-8481 SD. DS, 1.2 MB $995 

• 5 / 4 " internal disk drives—TANDON or Control 
Data-DS, 40 ATP1,320 KB. 

TM100-2 $235 •CDC 9409 $249 
574" half height internal disk drives available. 

• Control Data diskettes—1240-00 574" SS/DD 
w/write protect notch in hub ring—bx of 10 $22. 
1244-00 574 " DS/DD $35.1225-00 8" DS/DD 
wpn $39.50. VISA/MC. 


MICROXPRESS 


MICROXPRESS 

305 S. State College, Suite 135 

Anaheim, CA 92806 

(714)632-8512 


PC/STD BUS-h SOFTWARE $119 

STD EMULINK is a paralell interface to any STD 
Bus motherboard for IBM PC with Tecmar base¬ 
board. Comprised of STD Bus card, ribbon Ca- 
ble+ BASIC drivers. STD EMULINK offers PC user 
economical link to industrial quality STD Bus I/ 
0 boards, [ideal for PROCESS CONTROL & AU¬ 
TOMATION. Send check or money order. 

STD EMULINK 
P.O. Box 673 
Upton, NY 11973 


Mailing Lists 


IBM MAILING LISTS 

Over 100,000 names of IBM personal computer 
owners (counts increase daily) available for rental 
on labels or magnetic tape. Total 600,000 in¬ 
cluding other brands. Plus IBM + compatible 
retail store + 50 other lists. Call or write for free 
catalog. 

IRV BRECHNER 
TARGETED MARKETING, INC. 

Box 5125 

Ridgewood, NJ 07451 
(201)445-7196 


Publications 


DYNAMIC DUO RETURNS! 

Two new disk magazines for the IBM-PC-PC 
FIRING LINE (for programmers) and PC UN¬ 
DERGROUND (for non-tech folk) are available 
now. Send a self-addressed stamped disk mailer 
and two formatted DS/DD disks for your free 
copy. 

ABCOMPUTING 
P.O. Box 5503 

North Hollywood, CA 91616-5503 
(818)509-9002 


Security 


DATA PADLOCK 

DATA PADLOCK is a software implementation of 
the National Bureau of Standard Data Encryp¬ 
tion Standard. Written in Assembler. DATA PAD¬ 
LOCK offers max speed with no increase in file 
size. An 8 character password provides the key 
for encryption. Protect sensitive data, text or 
program files from unauthorized access. Works 
with all DOS versions $150. VISA/MC. 

GLENCO ENGINEERING 
3920 Ridge Ave. 

Arlington Hts., IL 60004 
(312)392-2492 
































TECH BOOK 


Software/Business 


dINVOICER + PLUS 

MENU-DRIVEN BILLING & ACCOUNTS RE¬ 
CEIVABLE MANAGEMENT SYSTEM. Produces 
Invoices, Aged Statements, Invoice Journals, 
Receipts Journals, Aged Customer Account 
Status, Past Due Notices, etc. Available with 
modifiable source code for dBASE II users $129 
or as a stand-alone Run-time package $199. 


DESMET C—$109 

Full K&R C compiler, assembler, linker, librarian, 
full-screen editor and example software. Both 
8087 and floating point libraries. OUTSTAND¬ 
ING PRICE/PERFORMANCE. Rated 1 st or 2nd in 
August ’83 BYTE benchmarks. No royalties on 
generated code. C Ware newsletter. Unlimited 
updates at $20 each. PC-DOS (Ver 1.1 & 2.0), 
generic MS-DOS and CP/M-86 support. $109 
for complete package, shipping included. Now 
available with source level debugger. Price $159. 


DATAMAR SYSTEMS 
819 Gage Dr. 

San Diego, CA 92106 
(619)223-6444 



WAR 

CORPORATI 



EXPERT SYSTEMS 

Create your own expert systems with EXSYS. All 
input is English text or menu selection. Uses full 
1000K and probabilistic IF-THEN rules. Expert 
systems developed marketable without royalty. 
Demo disk including text of manual $10 (refund¬ 
able). Full program—$200. Requires 128K or 
more. 

EXSYS 

RO. Box 75158 
Contr. Sta. 14 
Albuquerque, MN 87194 


Software/ 

Communications 


C WARE CORPORATION-MAIL ORDER DEPT. 

P.O.Box 710097 

San Jose, CA 95171-0097 

C SOFTWARE DEVELOPMENT 
•Full C Compiler per K&R 
Inline 8087 or Assembler Floating Point 
Full 1 Mb Addressing for Code or Data 
•MS DOS 1.1/2.0 Library Support 
Program Chaining Using Exec 
Environment Available to Main 
•c-window'“ C Source Code Debugger 
COMBINED PACKAGE $199 
c-systems 
RO. Box 3253 
Fullerton, CA 92634 
(714)637-5362 


TELEX LINK SOFTWARE 

Link your computer to Western Union telex ser¬ 
vice via TWX or EasyLink. Cawthon’s telex soft¬ 
ware is specifically designed for telex 
communications and is easy to use, has on-line 
help, self-test diagnostics, frequently called 
numbers, and an excellent User’s Guide. Caw¬ 
thon’s telex software is available for the IBM-PC 
and many other computers. 



Cawthon 

Scientific 

Group 


CAWTHON SCIENTIFIC GROUP 
24224 Michigan Avenue 
Oeatborn, Michigan 48124 
(313) 565-4000 Telex: 810-221-1265 


Software/ Compiler 


WIZARD C COMPILER 

The power of C with the thorough diagnostics of 
PASCAL. Full LINT diagnostic integrated with 
compiler. Full UNIX SYSTEM 3 compatibility. 
Floating point library; fast compact code; 1 reg¬ 
ister variable. In-line assembly code. UNIX em¬ 
ulation library. Uses MICRO-SOFT linker. PC/MS 
DOS 2.0 only. $450.00. 

WIZARD SYSTEMS SOFTWARE 
11 Willow Court 
Arlington, MA 02174 
(617)641-2379 


C-FUNCTION LIBRARY $29 

100 C functions, macros, assembly functions. 
Screen, cursor, keyboard, string, BI(3S and DOS 
access, of course. Plus BASIC equivalent, utility 
and many more you don’t have but need! Just 
one can save you five times the cost of entire 
package. Manual w/source code $29.95. Man¬ 
ual + 2 disks: source +5 libraries $49.95. Lat¬ 
tice or Microsoft C. (DeSmet and Cl soon). 
ENTELEKON 
12118 Kimberley 
Houston, TX 77024 
(713)468-4412 


Software Data 
Mgmt. 


THE FORMS DESIGNER"- 

Attention IBM Pascal, FORTRAN users! Save time 
in designing formatted screen I/O. Interactive 
Forms Editor allows you to draw lines and boxes, 
define fields, and edit text. Access forms or read 
keyboard entry by writing only one line of code. 
Provides sequential data retrieval and storage. 
Requires 128K RAM. Only $275 complete. Demo 
and manual $35. Call or write: 

BIT SOFTWARE 
PO Box 619 
Milipitas, CA 95035 
(408)262-1054 


Software/ 
Development Tools 


FREE FREE FREE 

BASIC AIDS FACT SHEETS and our guide titled 
“MAKE YOUR PC PROFITABLE" are sent free to 
persons who request them. Learn more about 
developing Structured Programs in BASIC. This 
new release of BASIC AIDS is the most powerful 
program DEVELOPMENT and DOCUMENTA¬ 
TION tool available! 

TULSA COMPUTER CONSORTIUM 
PO. Box 707 
Owasso, OK 74055 
(918)747-0151 

C-INDEX-i- 

C index plus provides complete data manage¬ 
ment for C language applications development. 
Includes variable length data storage, B+ Tree 
ISAM indexing, interactive tutorial. Supported 
compilers. Lattice & CI-C86. No application roy¬ 
alty fee. Object code license: $400. Demonstra¬ 
tion package: $25. 

TRIO SYSTEMS 
2210 WilshireBlvd. Suite 289 
Santa Monica, CA 90403 
(213)394-0796 

SOFTWARE PERFORMANCE 
PROFILER 

THE PROFILER'“ will tell you where your pro¬ 
gram is spending it’s time and allows you to do 
performance tuning on your code. Works with any 
language, data printed in histogram form. Easy 
to use and interpret. Complete user manual pro¬ 
vided. Requires DOS 2.0 or better and 64K. 
$175.00 VISA/MC OK. 

DWB ASSOCIATES 
PO BOX 5777 

BEAVERTON. OREGON 97006 
(503)629-9645 

PASCAL/FORTRAN/C UTIL 

Written in assembly language, Pascal/Fortran/ 
C Utilities control screen, keyboard, graphics, 
music, lightpen, mouse, joystick, printer, RS— 
232, & I/O ports. Line/circle/ellipse/pie, clip¬ 
ping. windowing & animation. Terminal emula¬ 
tor. random #. BIOS/DOS calls. W/150 pg. 
manual, demos. Specify compiler. $119. Check/ 
VS/MC. 

SOFTWARE LABS 
1221 Matisse Street 
Sunnyvale, CA 94087 
(408)730-8108 


ANOTHER DEBUGGER?? 

This one has FULL SCREEN format and SCREEN 
COEXISTENCE with test program (including 
graphics-even SCROLLS THROUGH LISTING 
FILES without disturbing the test session-all with 
NO COMMANDS and only 10 function keys! It’s 
fast (assembler), small (60K). and only $75 with 
manual. DOS 2.0 or 2.1 IBM PC. XT. COMPAQ 
PC-TEST 

for the software developer 
PO. Box 54068 
San Jose, CA 95154 

FORTRAN CODE EDITOR 

IFCE is a program that renumbers, aligns & de¬ 
tabs FORTRAN IV to 77 programs. IFCE works 
on a routine by routine basis. IFCE is very out¬ 
standing in situations where statement num¬ 
bers are not ordered as a result of modifications 
& program maintenance. IFCE is a FORTRAN 77 
program. Dealers welcome. $85. 

La Mesa Research & Development 
PO. Box 31 
Louisville, CO 80027 

C LIBRARY, TOOLS, SHELL 

Library for lattice C compiler: all DOS. Some BIOS 
function calls, enumerated and sorted file-names, 
longjimp, quicksort, random numbers, others. 
Tools: improved DIR, change mode, word count, 
walk directories, others. Source included. $50. 
Improved shell: all DOS internal commands, 
command history, etc. $55. 

LEMMA SYSTEMS. INC. 

1508 Calle del Ranchero NE 
Albuquerque, New Mexico 87106 
(505)268-7220 

RAPID BASIC PROGRAMMING 

SAVE VALUABLE TIME WITH THESE EFFEC¬ 
TIVE TOOLS: 

—R—Reference line numbers & variables used; 
—A—Alter or find string in program or file; 
—P—Peripheral input/output interchange prog; 
—I—Include basic subroutine source modules: 
—D—Duplicate variables in 2 modules listed. 
SOURCE MICROSOFT BASIC FORMATS ALL 
FOR $49.95. 

JAMES HALSTEAD & ASSOC. 

1551 Plainfield Road 
Joliet, IL 60435 
(815)725-0346 


COBOL GENERATOR 

Generates IBM PC or MS COBOL 

• Screen Design/Data Dictionary 

• Structured Program Generator 

• Query/Report Generator 

From $250—send for information 
—The COBOL Experts— 

• Manframe to PC conversions 
BOMAC SYSTEMS 

PO. Box 10670 
Pittsburgh, PA 15235 
(412)795-3581 



















TECH BOOK 


C LIBRARY UTILITIES 

Don’t reinvent the wheel. Save time & money. 
Do a better job. Extensive library with source. Best 
screen handling available. Sound, graphics, DOS 
2, printer, comm, date, time, and more. 150+ 
functions. DOS/BIOS gate gives complete con¬ 
trol of your PC. C86, Microsoft, Lattice. Intro, of¬ 
fer $79. Demo $30. 

ESSENTIAL SOFTWARE, INC. 

PO BOX 1003 
Maplewood, N.J. 07040 
(914)762-6605 


Software/ 

Engineering 


PELADA TEXT ENGINEER 

Engineering and Scientific Word processing. 
Technical symbols, special characters, super/ 
subscripts, italics, underlining, bolding. With 
graphics hardware you can design any symbols 
you want, up to 384 different characters. All 
characters visible on screen and printable. Easy 
English commands. $250. 

PELADA INFORMATICS INC. 

562 Johnson Street 
Kingston, Canada K7L-2A1 
(613)549-1747 

ELECTRONIC CIRCUIT ANALYSIS 

ECA is a high performance simulator for analog 
electronic circuits. Features include full editing, 
worst case, sensitivity analysis, ability to sweep 
components, 64 nodes. It is easy to use and very 
fast. Price $150. For all MS-DOS, CP/M, CP/M- 
86 computers. 

TATUM LABS 
P.O. Box 698 
Sandy Hook, CT 06482 
(203)426-2184 

PUBLIC DOMAIN FREEWARE 

Rent PC Disk Libraries for 7 days, copy yourself 
and return. Hundreds of business, games and 
utilities free for the taking! 
IBMPC-SIG-IOOVols. $99.50 

IBM PC-Blue 73 Vols. $99.50 

50' “flippy" Disks (blank) $99.50 
Rental is for 7 days after receipt (sent by VPS), 
3 more days grace to return. Credit cards ac¬ 
cepted, no deposit necessary. 

NATIONAL PUBLIC DOMAIN 
SOFTWARE CENTER 
1062 Taylor St., Visat, CA 92083 
(619)727-1015 

24 hr. orders. (619) 941-0925 tech. 


HEAT TRANSFER ON THE PC 

T/SNAP AND CPP1 are Thermal Engineering 
Programs. T/SNAP will solve steady-state and 
transient problems up to 250 nodes. Includes 
interactive input, FSE and plotting. CPP1 will 
design various size coldplates using compact 
fins. Calculates parametric electronic heat sink 
and pressure drop performance. 

TECHNA/SOFT SYSTEMS 
717 W. 14th Street 
Long Beach, CA 90813 
(213)432-2704/823-6291 


Software General 


ATTENTION SOFTWARE AUTHORS 

Our established literary agency is seeking to 
represent talented freelance programmers. We 
open doors for our clients at the leading soft¬ 
ware houses and negotiate the best deal possi¬ 
ble. Put our years of experience to work for you. 
For further information on the benefits of repre¬ 
sentation contact: 

THE ROBERT JACOB AGENCY 
1642 Eveningside Drive, Suite 110 
Thousand Oaks,CA 91362 
(805)492-3597 

RENT PUBLIC DOMAIN SOFT/W 

Rent our PC Disk Libraries for 7 days and copy 
them yourself. Hundreds of useful business, 
games and utilities FREE FOR THE TAKING! 
IBM-PCSIG-135 Disks $135.00 

IBM-PC “Blue" 53 Disks $50.00 

Rental is for 7 days after receipt, 3 days grace to 
return. Most credit cards accepted. 

NATIONAL PUBLIC DOMAIN SOFTWARE 
CENTER 

1533Avohill Drive 
Vista, CA 92083 

(619) 941-0925. lnfo-(619) 727-1015. 24 hr. 
orders. 


Software/Graphics 


FORTRAN GRAPHICS PACK 

60 Microsoft FORTRAN/Pascal (1.0 or 3.1) 
SuperSoft FORTRAN callable subroutines. 
Professional graphics power backed by a 90 page 
user manual, filled with examples and designed 
to be helpful to every level of user. Five packages 
in one! General utility, 2-D interactive, 2-D plots, 
3-D plots, and solid models (hidden line re¬ 
moval!) $95. 

MICROCOMPATIBLES 
11443 Oak Leaf Drive 
Silver Spring, MD 20901 
(301)593-0683 

TECHTRONICS 4010 EMULATION 

High resolution screen/printer graphics for the 
IBM PC. Full interactive capabilities with file 
transfer and cross-hair control. Utilizes PLOT 10, 
ISSCOS DISSPLA, TEL-A-GRAF and SAS pro¬ 
tocols. OFF-line review of graphics output. This 
emulation software is easy to use with high 
quality graphics at an affordable price. $80.00. 
Technological Systems Group 
5044 Haley Court 
Lilburn,GA 30247 
(404)923-4980 

GEOGRAF^“ 

GEOGRAF'“ helps you prepare high-quality, 
customized graphs for business, engineering and 
science. GEOGRAPH'" cuts programming time 
by up to 80%. Callable from BASIC, FORTRAN 
or PASCAL. Versions available for most graph¬ 
ics cards and plotters. Fully compatible with 
Colcomp’s FORTRAN standard plotting package. 
GEOCOMP CORPORATION 
342 Sudbury Road 
Concord, MA 01742 
(617)369-8304 


FORTRAN/PASCAL PEN PLOTS 

PLOTMATIC: Complete support for H-P, IBM, 
Apple and HI pen plotters. All primitives avail¬ 
able as subroutine/procedure calls plus total 2D 
plotting support package. INTERFACES with 
GRAFMATIC. Specify compiler (version num¬ 
ber) and plotter. $135 Plotmatic from 
Microcompatibles. 

Microcompatibles Dept. P 
11443 Oak Leaf Drive 
Silver Spring, MD 20901 
(301)593-0683 


Software/ 

Languages 


ADA ON A MICRO 

JANUS/ADA is an exceptional programming 
language for software development. Being a 
subset of the Ada programming language 
JANUS/ADA implements those features of Ada 
which are directly needed by professional pro¬ 
grammers. These features include separate 
compilation, user defined data types and helpful 
program debugging. 

R.R. SOFTWARE 
P.O. Box 1512 
Madison W153701 
(608)244-6436 

APPLICATION DEVELOPMENT 

Build any application in a fraction of the time it 
would take with BASIC or COBOL. TPL com¬ 
bines conventional programming language 
constructs with a database manager, screen 
handler, and report generator in a powerful, yet 
flexible application development system. Full TPL 
system $250. Manual/Demo $50. 

Randak Systems 
346 N. Kanan Road, #204 
Agoura,CA 91301 
(818)706-3737 


Software/ 
Mailing Programs 


PONY EXPRESS XL 

Designed for commercial mailings or extra large 
lists. Super fast machine code multi sort. Carrier 
route sort. Prints labels: 1 -5 across, singale line 
format, or user-defined format. Also CHESHIRE 
FORMAT. Unlimited files. Multi file merge. Rec¬ 
ords can be selected by user-defined codes, 
specific zips or zip ranges. Phone list option. 
Unique correction & deletion routines for updat¬ 
ing. Instant access to all records. Auto repeat for 
ease of record entry. Interfaces w/most word 
processors. $238. 

COMPUTECH 
975 Forest Ave. 

Lakewood, NJ 08701 
(201)364-3005 


Software/ Operating 
Systems 


MULTIPLE USERS UNDER PC DOS 

MultiLink turns PC-DOS into an efficient multi¬ 
user multi-tasking operating system. Additional 
users are supported by attaching inexpensive 
CRT terminals or modems to serial ports on the 
PC, and can run normal applications designed 
for PC-DOS. Includes host communications 
software for public dial-in. 

THE SOFTWARE LINK INCORPORATED 
6700 23B Roswell Rd. 

Atlanta, GA 30328 
(404)255-1254 


Software/Sort 


DPT-TECH SDRT/MERGE 

Extremely fast Sort/Merge program for the IBM- 
PC. Can sort or merge multiple files containing 
fixed or variable length records. Run as a DOS 
command or call as a subroutine, plus many 
other features. Now also sorts dBASE II files! 
Compare before you buy any other. Write or call 
for more info. $99. 

OPT-TECH DATA PROCESSING 
P.O. Box 2167 
Humble, TX 77347 
(713)454-7428 

INTERNAL SORT FOR BASIC 

NSORT—A FAST & easy to use quicksort sub¬ 
routine written in C & assembler, CALLable from 
BASIC. Sorts an unlimited number of records in 
memory on up to 8 keys of mixed type, ascend¬ 
ing/descending. Like having a SORT built into 
the language. Works w/compatibles. Compiled 
and Interpreted, all DOS versions. $49.95+$2.50 
s&h.MC/VISA/CHECK.PA + 6%tax. 
NATIONAL SOFTWORKS 
65 East Elizabeth Avenue 
Bethlehem, PA 18018 
(215)867-4800 


Software/Statistics 


AUTOBJ/AUTDBDX/BDX/SIM 

These PC statistical forecasting and modelling 
packages are as powerful as their mainframe 
counterparts. “Smart software" optionally al¬ 
lows the user to automatically build the best 
univariate and multivariate box-Jenkins models 
including Intervention Models. Easily interfaced 
with planning packages. Build B-J models in 
minutes. From $195. Demo $5. 

AUTOMATIC FORECASTING SYSTEMS, INC. 
PO BOX 563 
Hatboro, PA 19040 
(215)675-0652 

























TECH BOOK 


Software/Terminal 


BLUELYNX 

Replace your dumb terminals with smart PCs and 
XTs. TECHLAND SYSTEMS is the nation’s lead¬ 
ing synchronous communications company with 
over 6,000 BLUELYNX’ installed. The BLUE- 
LYNX hardware/software product emulates the 
5251/12 for the S/34, S/36 and S/38. Now 
bundled with Autolynx for unattended operation 
... only $745. BLUELYNX 3276 for the larger 43xx 
and 30xx mainframes, both SDLC and BSC ver¬ 
sions, now comes bundled with Data Reader, a 
utility that facilitates the formatting of host files 
into Lotus 1-2-3, dBase, etc... only $795. Printer 
and up-and-download support available with 
both verisons. 

ID 

TECHLAND 

SYSTEMS INC. 

TECHLAND SYSTEMS, INC. 

25 Waterside Plaza 
New York. NY 10010 
(212)684-7788 


Software/ 

Typesetting 


HIGH-TECH TYPESETTING 

Transmit your text via toll-free lines directly to 
our fully automated typesetting system. $2. per 
K characters with a $5. minimum. Same day 
service. 200 typefaces in sizes up to 72 point. 
Send $15. + $3. shipping for our 220 page 
guidebook, or call toll free and use your MC, VISA 
or AMEX. 

INTERGRAPHICS INC. 

106A South Columbus Street 
Alexandria, VA 22314 

(800) 368-3342 or (703) 683-9414 in DC area. 


Software/Utiuties 


IBM-PC COBOL PROGRAMMERS 

Screen coding is fun, fast and accurate with 
Qwik-Screen Builder. “Paint” screen layout and 
create true COBOL source code for screen sec¬ 
tion in minutes. 100+ pages of documentation. 
Satisfaction guaranteed or money back. Needs 
DOS 1.1/2.0, two DS/DD drives, mono¬ 
chrome display and the COBRUN. EXE runtime 
module. $50/Visa/MC. 

THE COMPUTER WORKS 
P.O.Box 1371 

Coeur d’Alene, Idaho 83814 
(208)667-6152 


DOS PATH Command For Data 

Now your programs can access data files under 
DOS 2.0+ no matter where they are located. 
DPATH, a system—resident program extending 
the functionality of your DOS PATH command to 
include data files, includes a screen—oriented 
maintenance utility and a 60-page user manual. 
Requires PC—DOS 2.0. $25. 

PERSONAL BUSINESS SOLUTIONS. INC. 

RO. Drawer 757 
Frederick, Maryland 21701 
(301)865-3376 

SNOOP DISKETTE UTILITY 

Produce graphic maps of diskettes and files. 
Comprehensive diskette analysis. Add, delete or 
modify labels. Pageable directory. Change file 
attributes. Display, modify or search sectors or 
files. Much more, all in a single, easy-to-use 
program. Documentation included. Introductory 
price $40. SASE for information.' 

OTTER CREEK SOFTWARE 
75 Hunting Lane 
Goode, Virginia 24556 

CONVERTS ANY CPMTODOS 

CROSSDATA CONVERTS ANY DATA/TEXT FILE 
format from CPMxx to MS/PC-DOS. CPMxx to 
CPMxx & MS/PC-DOS to CPMxx. Cross data 
runs on IBM PC or comparable computer using 
MS/DOS 2.0. Cross data is a self-contained 
program. It comes with over 24 mats and user 
can add own format. To order send $99. check 
or money order to: 



AWARD SOFWARE, INC. 

236 North Santa CruzAve. 

Los Gatos. CA 95030 
(408)395-2773 

COPY PROTECTION 

SLK/F places an assembled or compiled pro¬ 
gram on a diskette with 4 different copy-resis¬ 
tant features in such a way that it runs normally, 
but cannot be copied by backup programs such 
as COPYPC. The rest of the diskette is available 
as normal, and DOS may be added. Price $150. 

OLIVIE 

BRANCH 

SORTWARB 

OLIVE BRANCH SOFTWARE 
1715 Olive Street 
Santa Barbara, CA 93101 
(805)569-1682 


dSEARCHER QUERY UTILITY 

A professional searching tool for dBASE II files. 
Uses simple query syntax with report, recall, and 
edit facilities for single file searches of any com¬ 
plexity. Creates reusable command programs to 
search unlimited number of files for “like" data. 
Tutorial incl. $79.00. Visa/MC/COD. Call/write 
for info. 

MICRO BYTE 

P.O. Box 245 

Burke, VA 22015 

(703)569-6473.(703)451-8717 


COPY PROTECTION BY MSD 

The ULTIMATE diskette copy protection system 
designed by software developers and publish¬ 
ers. A variety of protection methods are avail¬ 
able to suit your protection requirements. All IBM 
PC and XT environments are supported which 
includes. DOS, BASIC (compiled and interpre¬ 
tive). Pascal, P-System and stand-a-lone sys¬ 
tems. Customized systems also available. 
Requires; 64K, two disk drives. 
MICRO-SOFTWARE DEVELOPERS. INC. 

2Wk West Main Street 
St. Charles, Illinois 60174 
(312)377-5151 

Hard Disk DIRECT ACCESS™ 

The ULTIMATE utility for any hard disk user. DI¬ 
RECT ACCESS is a powerful hard disk manage¬ 
ment tool. Organizes your software programs into 
a “user defined" menu system. Features attrac¬ 
tive screen display, rapid access into an appli¬ 
cation using a single keystroke & easy to learn. 
Also handles batch files & complicated DOS 
commands. Order today. Only $44.50 + $2.50 
shipping & handling. MC/VISA. 

DELTA TECHNOLOGIES 
P.O. Box 1104 

Eau Claire, Wisconsin 54702 
(715)832-0958 

TOOLS FOR PROGRAMMERS 

• FILE TOOL KIT. COMPARE lists file differ¬ 
ences. COMPRESS shrinks files, ENCRYPT se¬ 
cures valuable data. HEXDUMP lists files in hex 
and ASCII. 

• PASCAL TOOLKIT. PXREF prints program 
cross-references; PNEAT prettyprints pro¬ 
grams. PCASE highlights variables. Just $29.95 
each, both for $49.95. VISA/MC accepted. 
SEVEN VALLEYS SOFTWARE 

P.O. Box 99 

Glen Rock, PA 17327 

(717)235-5470 

PADLOCK/PADLOCK II DISKS 

PADLOCK furnishes the user with a method for 
providing protection against unauthorized du¬ 
plication from DOS commands $99. PADLOCK 
II disks come preformatted with finger-print and 
serialization. PADLOCK II disks offer superior 
protection. Ask about our fast data encryption 
product. All work with hard disk, EXE/COM files 
and all DOS versions. MC/VISA. 

GLENCO ENGINEERING 
3920 Ridge Ave. 

Arlington Hts.,IL 60004 
(312)392-2492 

FULL CONTROL FROM BASIC! 

Cut development time, add speed & power to 
your programs with NLIB. A library of assembly 
language sub-routines callable from BASIC: ex¬ 
ecute COM & EXE files, save & restore areas of 
the screen, clear & scroll windows, much more! 
Add DOS functions to your menus. Create fast 
help screens. Unlimited uses. Complete manual 
& sample programs. All DOS versions. $49.95 
+ Source avail. Call or write 
NATIONAL SOFTWORKS 
65 East Elizabeth Ave. 

Bethlehem. PA 18018 
(215)867-4800 


FULL CONTROL FROM BASIC 

Cut development time, add speed & power to 
your programs w/NLIB. A library of assembly 
language subroutines callable from BASIC: ex¬ 
ecute COM & EXE files, save & restore areas of 
the screen, clear & scroll windows, much more! 
Add DOS functions to your menus. Create fast 
help screens. Unlimited uses. All DOS Versions 
$49.95 + $2.50 s&h. MC/VISA/CHECK. PA + 
6 % tax. 

NATIONAL SOFTWORKS 
65 East Elizabeth Ave. 

Bethlehem, PA 18018 
(215)867-4800 

BASICWINDOW 

Screen Generator and Processor for BASIC pro¬ 
grammers. This package combines a Screen 
Painter for creating and modifying screens and 
Macro Language and Compiler for quicker cod¬ 
ing and testing. Features COLOR, field vari¬ 
ables, complete input editing, line drawing. For 
BASIC, BASICA, and BASIC Compiler users. In¬ 
cludes manual and reference card. $99.95 VISA/ 
MC accepted. 




G. FREEMAN & COMPANY. INC. 

15Albin Road 
Stamford. CT 06902 
(203)327-9868 

FIX DOS WITHA.K.A! 

Take full advantage of multiple directories—let 
unmodified programs access files outside of the 
current directory without pathnames. Alias file 
name to full paths, or direct searches to other 
directories according to name or extension, with 
multiple options. Operation is invisible—aliases 
are contained in the DOS 2.0 “environment.” $60. 
MC/VISA. 

SOFTSHELLTECHNOLOGYS 
54 Walnut Hill Rd. 

Newton, MA 02159 
(617)332-8186 


Software/Word 

Processing 


PELADA TEXT ENGINEER 

Word processing for scientific and multilingual 
text. All IBM characters. Super/subscripts, ital¬ 
ics, underlining, bolding. With graphics hard¬ 
ware. you can use any symbols and any alphabet, 
up to 384 characters. All symbols visible on 
screen and printable. Easy English commands. 
$250. 

PELADA INFORMATICS INC. 

562 Johnson Street 
Kingston, Canada K7L-2A1 
(613)549-1747 

VOLKSWRITER DELUXE 

Features TextMerge'“ for customized mailing lists; 
multi-lingual, engineering & scientific symbols: 
horizontal scrolling to 250 characters: docu¬ 
ment size 1 megabyte; on-screen page endings, 
underline, boldface, double-strike, strike¬ 
through. multiple fonts & colors—fevyest key¬ 
strokes per function. Only $295. 

LIFETREE SOFTWARE INC. 

411 Pacific Street 
Monterey, CA 93940-2790 

















TECH MART 


FORTRAN 

or 

PASCAL 

PROGRAMMER? 

READ 

THIS 

AD 


1 


GRAPHICS 

• Text/graphics generics 

• 2D interactive 

• 2D plots (full support) including 
auto-scaling, auto-axis genera¬ 
tion, auto-labeling, tabular/log/ 
parametric curves, splines, bars, 
pies, you name it, we have it. 

• 3D Plots incl. 2 hidden line remov¬ 
al options—not just old-fashioned 
wire frame. 

PEN PLOTS 

• Standard plotter primitives plus 

• FULL 2D support plus 

• Interface to screen graphics, 

• Limited 3D. 

Clear and complete documentation. 

GRAFMATIC $135. 

PLOTMATIC 135. 

MICROCOMPATIBLES 

11443 Oak Leaf Drive 

Silver Spring, MD 20901 

(301) 593-0683 


CIRCLE 301 


gNREADERggVjCECA 


FREE 

PROGRAMMABLE RELATIONAL 

DATABASE 

MANAGEMENT SYSTEM 


Full version, not a demo. A “user 
supported” program for IBM PC 
(128K) & compatibles with MS 
Basic & 192K. Manual is on disk. 
Includes accounting, payroll, 
inventory & A/R applications. Send 
4 disks, SASE, & $2 to cover 
copying costs or send $10. 

Potomac Pacific Engineering Inc. 

Box 2027, Gaithersburg, MD 20879 

(301)977-1489 


« PROMPT DELIVERY!!! 

SAME DAY SHIPPING (USUALLY) 


64K DYNAMIC RAM ICs 
200 ns @ $5.37 
150 ns (g $5.37 

256K DYNAMIC RAMS 
150 ns (g $48.99 

Place 512 Kbyte directly into IBM XT 
motherboard sockets with 18 256K ICs 
and proprietary information kit llllllllllllll 

Add 512 Kbyte Into XT @ $847.00 
CONSUME 0 EXRANSION SLOTS! 

Increase your XT mothertjoard memory to 640 Kbyte! 

We sell other memory ICs. 
27128, 2764, 6264, 5565 etc. 


MasterCard/VISA or UPS CASH COD 

Factory New, Prime Parts 

MICROPROCESSORS UNLIMITED 

24,000 South Peoria Ave. /n.4 o\ oc*7-ylOCi 
BEGGS, OK. 74421 '8) Zd7-49d1 

Prtoeeahown above are tor May 21,1064 
Please can lor current & v 

prices on some parts duo _ . _ _ 

discount prices shown SmaH orders received . 
you by the next momiog, via Federal Exptaes Standard 


juPoo 


& volume poeas. Pncas subject to change. Please expect higher 
due to world wide shortages. Shipping and Insurance extra. Cash 
by 6 PM CST ea 


Create your own 
unique PC interfaces 
in minutes! 








The PD100 allows rapid development of specialized 
PC interfaces. It features a buffered data bus. 
switch-selectable address decoder, and a large 
prototype area (up to 40 IC sockets). The 116-page 
manual covers basic interfacing concepts and.details 
implementing A/D. D/A converters. I/O ports, 
connection of transducers and dozens of useful 
circuits. 

PD100 w/manual - $99 REAL TIME DEVICES 
plus $3.50 P&H 1930 Park Forest Ave. 



Manual only - $20 Postpaid P.O. Box 906 


PA residents add 6% 


State College. PA 16804 


Check. MasterCard, or VISA (814) 234-8087 


SALES 
POWER 


PC: Tech Journal not only sells 
itself at a nice profit, it helps sell 
the hardware and software in 
your store too. Because it goes 
home with customers and con¬ 
tinues to influence buying deci¬ 
sions long after you’re closed for 
the day. Let’s talk now. 

CALL COLLECT: 

(212) 725-7679 

Or write: 

[7n | Ziff-Davis Publishing: \ 

I One Park Avenue 
New York. NY 10016 

I Minimum order, 10 copies. We pay all shipping costs. 


How to teach 
your kids 
about the 
IBM PC. 

Computers for Kids teaches 
children age 8 and older to 
write their own programs in 
less than an hour—without the 
necessity for previous knowl¬ 
edge of algebra, variables, or 
computers. And there’s a spe¬ 
cial section that keeps parents 
and teachers on the same 
successful command path. 

Starting off with an easy-to- 
understand explanation of 
how to use the IBM PC, your 
kids will progress quickly to 
flow charts and simple print 
programs.. .to loops, ^aphics, 
and other programming con¬ 
cepts that show the young 
user how to make the PC do 
exactly what he wants-in 
non-technical language that 
makes life easier for both 
of you. 

So do your children a favor. 

Do yourself 
a favor. 
Order the 
PC edition 
of Com- 
' putersfor 
Kids today'. 



Creative Computing Press 

Dept. NY4C 39 East Hanover Avenue 
Morris Plains, NJ 07950 

Send me_ Computers for 

Kids, PC edition, at $5.95 plus $1.50 post¬ 
age and handling each. #12K 

□ PAYMENT ENCLOSED $_ 

Residents of CA, NJ and PfYState add 
applicable sales tax. Outside USA add 
$3.00per order. 

□ CHARGE MY: (Charge and phone 
order $10 minimum) 

□ American Express 

□ MasterCard □ Visa 


CardNo_ 


_Exp. Date- 


Signature- 


Mr./Mrs./Ms- 
Address- 


(please print full name) 


-Apt- 


City- 


State 


Zip- 


Also available at your local bookstore or computer store. 

□ Send me a FREE Creative Computing 
^ Catalog. j 













































HOWTO 

GETAN 

HlirPG 

FORJUOT 

< 1995 . 



The Chameleon by Seequa does everything an IBM 
PC does. For about $2000 less than an IBM. 

The Chameleon lets you run popular IBM software 
like Lotus® 1-2-3™ and Wordstar.® It has a full 83 key 
keyboard just like an IBM. Disk drives like an IBM. And 
a bright 80 x 25 character screen just like an IBM. 

But it’s not just the Chameleon’s similarities to the 
IBM that should interest you. Its advantages should, too. 
The Chameleon also has an 8 bit microprocessor that 


lets you run any of the 
thousands of CP/M-80® programs available. It comes 
complete with two of the best programs around, 
Perfect Writer™ and Perfect Calc.™ It’s portable. Anc 
you can plug it in and start computing the moment 
you unwrap it. 

So if you’ve been interested in an IBM personal 
computer, now you know where you can get one for 
$1995. Wherever they sell Chameleons. 


The Chameleon by 



SEEQUA 

COMPUTER 

CORPORATION 

8305 Telegraph Road 
Odenton.MD 21113 


CIRCLE NO. 265 ON READER SERVICE CARD 


For the location of the Seequa dealer nearest you, 
call (800) 638-6066 or (301) 672-3600. 




PC TECH JOURNAL PRODUCT INDEX 


RS# PRODUCT ADVERTISER PAGE # 

OPERATING SYSTEMS 

265 Chameleon Seequa .204 

160 Xenix Santa Cruz Operation .28 

IBM COMPUTERS AND COMPATIBLE UNITS 

“ Compaq Portable Compaq Computer Co.90-91 

277 Single Board PC I-Bus Systems .78 

ACCESSORY CARDS/ 
MULTIFUNCTION BOARDS 

199 Super Rio/Rio Plus STB Systems .33 

190 Bubble Memory Board Pure Data Ltd .161 

225 Taurus Boards Taurus Computer Products .4 

154 Captain & First Mate Tecmar .18-19 

NETWORKING PRODUCTS 

201 B-Trieve Softcraft, Inc.94 

192 PC-Net-Local Area Network Orchid Technology .141 

119 C-Tree Faircom .100 

198 Multilink Software Link .178 

230 Omninet Corvus .95 

218 Network Station Watsoft .118 

OTHER ACCESSORY CARDS 

273 ABM Superboard ABM Computer Systems .183 

145 8087 Math Pak Hauppauge Computer .74 

154 Labpac Tecmar .18-19 

MASS STORAGE HARDWARE 

106 Apparat Hard Disk Apparat .62-63 

122 Pegasus Hard Disk Great Lakes .121 

234 Tallgrass Hard Disk Tallgrass Technology .2 

215 SCSI Interface Innovative Data .181 

185 9 Track Tape controller Overland Data .168 

134 Data Series Hard Disk Micro Design .169 

149/ 10 MB Drive 

205 Interface .145 

124 9 Track Mag IBEX Computer Corp .116 

101 Mega Flight 100 Kammerman Labs .29 

111 Teammate Data Technology Corp .26 

114 Disk Drive Dragon .15 

143 Mass Storage Hardware Davong .C-3 

142 Hard Disk Subsystem Desert Technology .184 

125 Storage Products Mountain Computer .162 

“ The Image Sysgen .107 

169 The Vision Series Pacific Datanet .149 

COMMUNICATIONS HARDWARE 

104 Magnum/Supersmart American High Tech Ind.133 

204 M1212 PC Board Modem Multitech Systems .8 

191 Communications Family Quadram .C-2 

213 File Connection Flagstaff Engineering .67 

103 Smart-Cat Modem Novation, Inc.148 

158 Smartcom II Hayes Microcomputer Products 42-43 

187 XCom Modem Delta Communications . 175 

PRINTERS Sl PLOTTERS 

122 Scientific Plotter Interactive Microware .189 

147 HP Plotter Hewlitt Packard .145 

INPUT HARDWARE 

" Microsoft Mouse Microsoft .22-23 

GRAPHICS SOFTWARE 

114 ESP Bellesoft .39 

138 GDSS Data Business Vision .167 

SOFTWARE FOR PROFESSIONALS 

" SideKick Borland International .117 

235 Printer Basher Connecticut Software .68 

120 Concept 100 Concept Technology .172 

WORD PROCESSING SOFTWARE 

236 Word Perfect Satellite Software Int’l .13 

141 Text Engineer Pelada Informatica .127 


RS# PRODUCT ADVERTISER PAGE # 

DATA BASE MANAGEMENT SOFTWARE 

300 DBase II Ashton Tate .108-109 

196 Knowledge Man MDBS .12 

148 XIM Zanthe .1 

146 Dataflex Data Access .150 

221 Database Management Software Quic-N-Easy . 162-163 

LANGUAGES 

° Turbo Pascal Borland International .117 

129 C-86 Compiler Computer Innovations .182 

222 HS/Forth Harvard softworks .154 

159 PC Forth Laboratory Microsystems .132 

243 LISP Integral Quality .208 

208 APL Plus/PC System STSC .153 

186 Coherent Mark Williams .27 

115 Pascal and C Tools Blaise Computing .84 

121 Windows for C Creative Solutions .102 

165 mbp cobol mbp Software and Systems 

Technology .103 

177 Better Basic Summit Software .35-37 

151 Modular II Logitech .101 

PROGRAMMER'S TOOLS 

206 PDT PC Answer Software .72 

105 Greenleaf Functions C Library Greenleaf Software .147 

268 Editor-n-Chief Polytron .97 

207 SPF/PC Rogue River Software .126 

113 Unix style Tools Carousel Microtools .190 

157 B-Tree Accudata Software .178 

126 VSI Amber Systems .86 

166 Amerisoft Edit Tool Amerisoft .138 

112 Programming Tool Bit Wit Software .191 

116 Basic C C-Source .124 

179 Opt Tech Sort Opt Tech .118 

132 Firstime Spruce Technology .75 

109 Ecosoft-C Ecosoft .109 

137 Peeks’n Pokes Data Base Decisions .41 

131 Symbolic Debugger D&V Systems .132 

173 Explain Documentation Communication Sciences .114 

216 The Profiler DWB Associates .81 

181 DB Compiler Word Tech .87 

167 Mylstar Symbolic Debugger Mylstar .99 

201 B-Trieve Softcraft .94 

184 Dezign Zeducomp .135 

107 PC Probe Atron .73 

SOFTWARE UTILITIES 

153 Multijob B&L Computer Consultants .189 

150 KeySwap Rickerdata .69 

° JET Tall Tree Systems .136 

172 Screen Sculptor Software Bottling Co.123 

180 Prolock Vault Corporation .16-17 

164 D Flow Wallsoft Systems Inc.82 

156 Autokey Strategic Automation .120 

196 Scroll Optimum Data Processing .168 

194 Copy Write Quaid .81 

155 File Conversion Micro Tech .168 

ANALOG I/O 

139 DT2801/I.O. System Data Translation .70 

ADDITIONAL SUPPLIES 

130 Data Saver Cuesta Systems .184 

178 TDK Diskettes TDK Electronics .88-89 

125 Surge Protector Curtis .10-11 

193 Diskettes Beck .176 

MAIL ORDER 

123 MicroXpress .174 

226 Programmer’s Connection .191 

239 Programmer’s Shop .160 

175 Software Horizons .134 

183 PC Link .83 

197 Coosol .104 

203 Micro Mart .7 


September i984 


205 


















































































































COMPU 


805 - 498-6635 


IBM PC $1899 

256K, two disk drives 360K each. 

Drive Controller and Keyboard 


IBM PORTABLE 

256K, two disk drives $2199 



IBMPCw/IOMB 

256K, one floppy Drive, Keyboard ^ n r a 

10 MB Hard Disk with Controller yZ599 

BOOTS FROM HARD DISK Backup also available 


IBMPC w/30MB 

256K, one floppy Drive, Keyboard 
30 MB Hard Disk with Controller 
and Booster Power Supply 
BOOTS FROM HARD DISK Backup also available 


$3999 


★ PRICE WAR ★ CALLUS LAST WITH YOUR BEST QUOTES 


PRINTERS 


FX-80... 

EPSON LO-1500. 


.$489 

$599 

.CALL 


OKIDATA 

INCLUDES PLUG&PUY 


92P. 

93P. 

84P. 


$399 

$649 

.$799 


^-- 2050 . 
NEC 3550 


..$799 

.$1,499 


DYNAX 

DX-15 


$399 


BROTHER S'li 


$649 

$999 


IDS PRISM 132C 

COLOR PRINTER 


$ 1,499 


SHEET FEEDERS 
AND TRACTORS 


PLOTTERS 


AMDEK 

AMPLOTII 6Pens 


CALL 


$799 




7470A-2Pens. 

7475A-6Pens 


...$949 

..$1,699 


DXY-10I -1 Pen.$599 

ROLAND DXY-SOO - 8 Pens.$799 


Houston OMP 40-2 Pens... $799 

instrument dmp 29 - 8 Pens... $1799 


MONITORS 


MAX -12 Amber.$179 

HX-12 .$449 

P05SR-12.$599 


ROLAND 
CC141 14" RGB. 


$599 


300 Green.$119 

. 300 Amber.$139 

AMPeK 310 Amber. ..$159 


MODEMS 


MICROCOMERA2 

Internal.$329 Standalone.$439 


HAYES 12008.$399 

SMARTMODEM 1200 .$479 


Internal .. 
QUBIE Standalone . 


.$299 

.$329 


COMPU 


HARD DRIVES 


UP TO 140 MB 

BACKUP ALSO AVAILABLE CALL 


EVEREX 10MB 

w/Controlier and 2 Year Warranty 


$899 


MAYNARD 10MK/SOMB 

10M8/WS-1.$899 IOMB/WS-2.$1,049 

30MB.CALL 


NETWORKING 


ORCHID TECHNOLOGY 

PC Net PLUS Starter Kit.$999 


CORVUS OMNINET 


TALL GRASS TECHNOLOGY 

20 MB w/20 MB Backup .$3,299 

35 MB w/45 MB Bockup .$4,495 

70 MB w/60 MB Backup.CALL 


FLOPPY DRIVES 


55B-DSD0.$149 

TEAC HEIGHT 55F-QUAD.$199 


SANTA CLARA SYSTEMS 

PC Terminal.CALL 


MULTI-DISPLAY CARDS 


jD MonoGraph Plus w/clock & PP.$369 

AST Serial Port Option.$30 


QUAD Color I 


EVEREX Graphics Edge 


$199 ColorII ..$199 

5399 


fullHt-DSDD.$199 

CDC HalfHt.-DSDD .$179 


TANDON 100-2 

Full Ht. DSDD 


$179 


i,$UPER SPECIALS i, 


64KRAM 

Set of 9 chips 


$45 


TECMAR Graphics Master $449 


ueRB#<iRi Mono Graphics.$329 

HENVULES Color Graphics.$199 


NEW 




$349 


PtANTRONICS 

Color Plus $366 


PARADISE Multi-display Cord $299 


mm^mrn Color/Graphics Cord.$199 

IBIVI PC MonoChrorne/Printer Cord.$199 


PGS HX-12 


$449 


Tseng Labs Ultra PAK $499 


MULTI FUNCTION CARDS 


'^^'^QUADBOARD (to384K) $199 


AST$IXPAK»I>MK|I.3B4»} $249 


EVEREX $229 


TEAC Disk Drive 

FD55B, 360K slimline, PC Compatible 


$149 


KEYTRONIC ^lon 

Deluxe Keyboard KB5151>177 


ERA 2 MODEM 

PC Internal 1200 Baud w/software, 4 Yr. Warranty 


$329 


COMPAQ 

2S6K. 2 Disk Drlvas 


$ 1,999 


MISC. ADD DNS 


PRACTICAL 

PERIPHERALS MICROBUFFER. 


CALL 


CABLE Parallel or Serial 


$20 


IBM PC DOS].] ..$20 DOS 2.1 ..$50 


IBM PC Floppy Drive Controller $139 




AMERICAN 

EXPRESS 


VISA 


COD NO SURCHARGE: VISA & MC 3%, AMEX 5% 


COMPUTER POWER 
ACCESSORIES DIRECTOR 


$109 


..$299 

..$399 


STANDBY 200 wahs.. 

POWER SUPPLY 300 wahs.. 

Surge Protection, up to 30 minutes Standby Power 


805 - 498-6635 


2509 THOUSAND OAKS BLVD., THOUSAND OAKS, CA 91362 TELEX 888522 


Ad #889 


CIRCLE NO. 117 ON READER SERVICE CARD 

























































































































































INDEX TO ADVERTISERS 


Reader Service 

Number Advertiser Page 


273 ABM .183 

157 Accudata Software .178 

126 Amber Systems .86 

104 American High Tech .133 

166 Amerisoft .138 

206 Answer Software .72 

106 Apparat .62-63 

300 AshtonTate .108-109 

107 Atron .73 

110 Avocet .85 

153 BSlL Computer .189 

193 Beck Manufacturing .176 

114 Bellesoft .39 

112 Bit Wit Software .191 

115 Blaise Computing .84 

* Borland International .117 

* Borland International .119 

108 Bourbaki, Inc.191 

116 C-Source .124 

113 Carousel Microtools .190 

173 Communication Sciences . 114 

* Compaq Computer Co. .90-91 

117 Compumail .206 

197 Computer Baron .104 

129 Computer Innovations .182 

120 Concept Technologies .172 

235 Connecticut Software .68 

197 Coosol, Inc.104 

230 Corvus .95 

121 Creative Solution .102 

130 Cuesta Systems .184 

125 Curtis Manufacturing ...10-11 

133 CXI .C-4 

131 D Sl V Systems .132 

216 DWB Associates .81 

146 Data Access Corp .150 

137 Data Base Decisions .41 

138 Data Business Vision .167 

202 Data Sources .137 

111 Data Technology Corp .26 

278 Davong Systems .C-3 

187 Delta Communications ....175 

142 Desert Technologies .184 

144 Dragon Industries .15 

109 Ecosoft .109 

119 Faircom .100 


September i984 


Reader Service 

Number Advertiser Page 


213 Flagstaff Engineering .67 

122 Great Lakes .121 

105 Greenleaf Software .147 

222 Harvard Softworks .154 

145 Hauppage Computer .74 

158 Hayes Microcomputer ..42-43 

* Hercules .9 

147 Hewlitt Packard .145 

124 IBEX Computer Corp .116 

277 I-Bus Systems .78 

152 IBM .170-71 

215 Innovative Data .181 

243 Integral Quality .208 

122 Interactive Microware .189 

149 Interface .145 

102 Iomega .115 

101 Kammerman Labs .29 

159 Laboratory Microsystems . 132 

128 Lattice, Inc.116 

151 Logitech Inc.101 

186 Mark Williams Co., The ... 27 
165 mbp Software and Systems 

Technology .103 

269 Metrabyte .177 

118 Micro Data Base Systems .. 12 

134 Micro Design Int'l .169 

163 Micro Marketing Associates 

122 

203 Micro Mart .7 

155 Micro Tech Exports .168 

161 The Microperipheral .168 

* Microsoft .22-23 

174 Microway .106 

* Microware . See Microway 

123 Microxpress .174 

165 Morgan Computing Co .... 139 

125 Mountain Computer, Inc. 162 

204 Multi Tech Systems .8 

167 Mylstar Electronics .99 

103 Novation .148 

179 Opt-Tech .118 

196 Opt-Tech .168 

168 Orange Micro .64 

192 Orchid Technology .141 

185 Overland Data .168 

170 PC Brand .44-45 


Reader Service 

Number Advertiser Page 


182 PC Connection .76-77 

183 PC Link .83 

169 Pacific Datanet .149 

141 Pelada Informatica .127 

143 Phoenix Software .6 

171 Polygon .96 

268 Polytron .97 

188 Princeton Graphics .159 

226 Programmer's Connection 191 

239 Programmer's Shop .160 

190 Pure Data LTD.161 

191 Quadram Corp.C-2 

194 Quaid Software .81 

221 Quic-N-Easi Products 162-163 

150 Rickerdata .69 

207 Rogue River Software .126 

199 STB Systems .33 

208 STSC .153 

160 Santa Cruz Operation .28 

236 Satellite Software .13 

265 Seequa .204 

201 Softcraft .94 

172 Software Bottling Co.123 

175 Software Horizons .134 

198 Software Link .178 

132 Spruce Technology .75 

299 Standard Datacom .165 

176 Star Micronics .155 

156 Strategic Automation .120 

177 Summit Software .35-37 

* Sysgen, Inc.107 

200 System Engineering .158 

178 TDK Electronics .88-89 

234 Tall Grass Technology .2 

* Tall Tree Systems .136 

225 Taurus Computer .4 

154 Tecmar .18,19 

195 Tecmar .179 

180 Vault Corporation .16-17 

140 Visual Age .110 

164 Wallsoft Systems, Inc .82 

218 Watsoft . 118 

228 Watsoft .126 

181 Word Tech .87 

148 Zanthe .1 

184 Zeducomp .135 


207 
































































































































CALENDAR 


USP 


FOR THE 



THE PREMIER LANGUAGE 
OF ARTIFICIAL 
INTELLIGENCE FOR 
YOUR IBM PC. 


■ DATATYPES 

Lists and Symbols 
Unlimited Precision Integers 
Floating Point Numbers 
Character Strings 
Multidimensional Arrays 
Files 

Machine Language Code 

■ MEMORY MANAGEMENT 

Full Memory Space Supported 
Dynamic Allocation 
Compacting Garbage Collector 

■ FUNCTION TYPES 

EXPR/FEXPR/MACRO 
Machine Language Primitives 
Over 190 Primitive Functions 

■ lO SUPPORT 

Multiple Display Windows 
Cursor Control 
All Function Keys Supported 
Read and Splice Macros 
Disk Files 

■ POWERFUL ERROR RECOVERY 

■ 8087 SUPPORT 

■ COLOR GRAPHICS 

■ LISP LIBRARY 

Structured Programming Macros 
Editor and Formatter 
Package Support 
Debugging Functions 
OBJ File Loader 

■ RUNS UNDER PC-DOS 1.1 or 2.0 


_ IQLISP _ 

5Va” Diskette 

and Manual_$175.00 

Manual Only_$ 30.00 


Jq Integral Quality 
P.O.Box 31970 

Seattle, Washington 98103-0070 
(206) 527-2918 

Washington State residents add sales tax. 
VISA and MASTERCARD accepted. 
Shipping included for prepaid orders. 


SEPTEMBER _ 

September 3-5 

IBM System User Show 
London 

Sponsor: IBM System User Magazine 
Contact: EMAP International 
Exhibitions Ltd., 8 Herbal Hill, 

London, ECIR 5JB, England 

September 6-9 

CompuLearn: International 
Exposition and Conference on 
Computers in Education 
Atlanta, GA 

Sponsors: Expoconsul International, Inc. 
and A Better Way in cooperation 
with The United Negro 
College Fund 

Contact: Expoconsul International Inc., 
55 Princeton-Hightstown Road, 

Princeton Junction, NJ 08550 

September 11-14 

UNIX Systems EXPO/84 

Los Angeles, CA 

Sponsor: Computer Faire, Inc. 

Contact: David Sudkin, 617-965-8350; 
Alan Kucheck, 415-364-4294 

September 12-14 
Eurographics '84 
Copenhagen 

Sponsor: SIGGRAPH 

Contact: DIS Congress Service, Linde 

Alle 48, DK-2720 Vanlose, 

Copenhagen, Denmark 

September 16-20 

COMECON Fall 
Arlington, VA 

Sponsor: IEEE 

Contact: IEEE, P.O. Box 639, 

Silver Spring, MD 20901 

September 20-23 
New York/Userfest 
New York, NY 

Sponsor: Northeast Expositions 
Contact: Northeast Expositions, 
617-739-2000 

September 24-25 

World Conference on 

Ergonomics in Computer 

Systems 

Los Angeles, CA 

Contact: Crispin Littlehales or 

Rosemarie Burnett, 

Thomas L. Richmond, Inc., 

1350 Avenue of the Americas, 

New York, NY 10019 
212-581-4200 


September 24-26 
PCExpo 
Anaheim, CA 

Contact: PCExpo Shows, 

333 Sylvan Avenue, 

Englewood Cliffs, NJ 07632, 
201-569-8542 

September 27-30 

5th Annual Mid-Atlantic 
Computer Show and Office 
Equipment Exposition 
Washington, D.C. 

Sponsor: CompuShows, Inc. 
Contact: CompuShows, Inc., 

P.O. Box 3315, 

Annapolis, MD 21403 


OCTOBER _ 

October 2-4 

East Coast Computer Faire 
Boston, MA 

Sponsor: Computer Faire, Inc. 

Contact: Dave Roth, 617-965-8350 (East 
Coast office); Nels Anderson, 
415-364-4294 (West Coast office) 

October 8-10 

ACM 1984 Conference 
San Francisco, CA 

Contact: Karen A. Duncan, Health 
Information Systems, 15 Parsons Way, 
Los Altos, CA 94022, 415-948-3941 

October 9-11 

International Conference on 
Advances in Microprocessor 
Peripherals 
Lausanne, Switzerland 

Contact: Secretariat des Jouintes 
d'electronique et de microtechnique, 
Departement d'Electricite^EPFL, 
Chenin de Bellerive 16, CH-1(X)7 
Lausanne, Switzerland, 41-21-471111 

October 15-17 

4th Symposium on Reliability 
in Distributed Software and 
Database Systems 
Silver Spring, MD 

Sponsor: IEEE Computer Society, in 
cooperation with ACM 
Contact: IEEE Computer Society, 

P.O. Box 639, Silver Spring, MD 20901, 
301-589-8142 

October 15-18 
SOFTCON/FALL 
Los Angeles, CA 

Sponsor: Northeast Expositions 
Contact: Northeast Expositions, 
617-739-2000 


CIRCLE NO. 243 ON READER SERVICE CARD 


PC Tech Journal 


























The Perfect Match 



Davonghasa 
beautiful way to solve 
__ both your hard 

Davong'tS^n^e^ 

combines good 
looks with hard 


disk and tape. 


We offer a 
full range of 
disk sizes, all includ¬ 
ing a hard disk drive plus 
tape backup unit. And the 
capability of using the tape as 
a start/stop systems device. 


IHKl 


In fact, this Davong 
DataSystem has a lot of other 
beautiful benefits, too. Like com¬ 
pressed or full-volume backup 
with file-by-file or full-volume 
restore. And automatic flaw 
mapping to ensure complete 
media interchangeability. 


®Multi-OS is a registered trademark of Davong Systems, Inc. ®IBM is a registered trademark of IBM Corp. 


Our full XT compatibility 
actually offers performance 
a cut above other XTs. And 
if you want even higher 
performance and password 
protection, you can use our 
Multi-OS® software. 

To top it off, there's the 
sleek, contemporary styling 
of our DataSystem. And a 
low price that's equally 
attractive. 

Davong 
DataSystem 
for IBM 
PC's. 

Davong Systems, Inc. 

217 Humboldt Court 
Sunnyvale, CA 94089 
(408) 734-4900 Telex: 176386 

CIRCLE NO. 278 ON READER SERVICE CARD 









Introducing 

3270 PC capability for all the PCs you 
can’t afford to replace. 


When IBM designed the 3270 PC, they 
thought of everything. Except what to do with 
all the PCs your company already owns. 

We were a little more thoughtful. 

Tkke our CXI 3270 PC Connection. It’s an 
add-in board and software that turns the IBM* 
PCs and compatibles you have into the 3270 
PCs you need. Both local and remote. 

Using either a coaxial or 
modem connection. 

Now your users can 
access and “window” up to 
five different host applications 
at the same time. There’s also a window for 
running a PC DOS program. Which can be easily 
programmed to talk with any host session— 
or all five at once. And if that weren’t enough, 
we even included two electronic notepads. 

But here’s the best part. 

Your existing PC-attached printers can 
work as host-addressable IBM 3287 equivalents. 


You can run all the PC software you’ve already 
invested in. And even international keyboard 
mapping and file transfer are standard. 

Of course, not everyone 
on your network needs foil 
3270 PC capability.That’s why 
we offer the CXI 3278/79 Plus 
connection. It lets your PC 
users view one host session, one PC program 
and two notepads—concurrently. 

Our entire line of CONNECTWARE™ 
micro-to-mainframe solutions is available on 
a 30-day free trial basis. 

So for more information, call toll-free 
800/221-6402. In California, call 415/424-0700. 

Or write CXI, Inc., 3606 West Bayshore 
Road, Palo Alto, CA 94303. 

Telex 821945. 

And get the 3270 PC I Jy I 
capability you need on the 
PCs you already have. il^HIIH 




CONNECTWARE is a trademark of CXI, Inc. IBM is a registered trademark of International Business Machines Corp. © 1984, CXI, Inc. 
CIRCLE NO. 133 ON READER SERVICE CARD